An actor model in the context of a programming language is an asynchronous process-oriented programming style. In this model, data and instructions are represented as “actors” which contain their own state, behavior and information about communication with other actors. Each actor can send messages and change its internal behavior in response to the messages it receives. Central to this architecture is a runtime system called an Actor Supervisor which offers scheduling, resource management and communication services that enable these programs to run efficiently on distributed systems like cloud applications and parallel architectures. The goal of using an actor model is to create applications that are resilient, independent from environment settings, easily scalable and distributed without major effort.