Last updated on 16th July 2024
In order for vertices to interact, they must pass messages to each other, and
handle the messages sent to them by other vertices. At the core-graph
level,
this handling of incoming messages and the subsequent reactions is the only
ordering mechanism available.
Messaging proceeds in phases, with each vertex acting in parallel within a phase. The precise ordering within a phase is undefined, but also unobservable, as vertices cannot interact directly.
Any vertex which has received messages, has the opportunity to act on those messages. This could be any combination of sending messages (either in response or to other agents), updating internal state, updating links, contributing to accumulators, etc.
In each phase, each Vertex
receives every message sent to it in the previous
phase. These messages are received as a list, the order of which is undefined.
It is left as a higher level consideration on whether messages should be dealt
with in a specific order, as defined by the exact requirements of the logic to
be implemented.
Phases continue until no messages are sent within a phase, or the builtin phase limit is reached (default 50).