actor model

A software design pattern used in systems that require concurrent computation where the primitive is an "actor": an object that reads messages sent to it and can react by concurrently (in any order or in parallel):

Actors may have private state but the only way to modify that state externally is through message sending.

A message can be sent to more than one actor. Every actor has an "address" and any actor that knows its address can send it messages.

Messages in an actor's maibox must be handled in first in first out (FIFO) order.

The benefits of this model include