This section describes messages that this Actor may process. It can be understood as a set of if …, then: … statements. For instance:
- If I receive a message
Message(context)
, then: I will try to satisfy this objective using the contextcontext
.
Describes a message type that this Actor may process. It is formed by an objective and a context.
Describes the objective supposed to be satisfied by this Actor after receiving Message(context)
.
Describes the context
that is required for this Actor to — maybe — satisfy the objective.
This section can be understood as a set of ongoing — possibly concurrent — computations. Each of them represents the computation associated with a received message.
To build a computation, a message is moved from the mailbox to this section. Computing means enriching the context of the message up to the point of being able to infer a result — i.e. an instance of some type — that satisfies the objective.
Enriching the context may be done by any means possible. In the context of the Actor model, it means:
- Computing from available state.
- Sending messages to other actors or even itself.
- Creating other actors.
Describes the objective associated with this message. This section is optional if the message type belongs to this Actor's interface.
This section stores the result so far, if any. The result may or may not satisfy the objective.
Describes the context associated with this message that may be used by this Actor to satisfy the objective. For instance, it may include the sender address so that a result may be sent back to it.
Describes whatever this Actor knows, for instance: the address of another actor.
This section stores the messages received by the Actor that are to be processed.
This section stores past computations for future reference.