Skip to content

Actor Behavior

Joe Hegarty edited this page Nov 27, 2016 · 6 revisions

Like other virtual actor frameworks, in Ratatoskr, an actor is an object that interacts with the world using asynchronous messages.

An actor conceptually always exists and at any time an actor may be active or inactive. When a message is sent to an inactive actor it will be activated somewhere in the pool of backend servers automatically without developer intervention.

Ratatoskr guarantees that only one activation of an actor with a given identity can exist at any one time in the cluster. It also guarantees that multiple calls to actors can never be processed in parallel, the full promise chain returned from an actor must complete before the next message is processed.

As such, developers do not need to be concerned about keeping multiple activations/instances of an actor synchronized with one another.

Actors are deactivated based on a timeout after a period of inactivity.