Modules
Behaviour and macros for defining an aggregate: the unit that decides how a command is handled and how events change its state.
Behaviour for the event store that backs aggregates.
The wrapper state of an aggregate: your aggregate's own state (client_state) plus
its event-stream version and the set of already-processed message ids.
Helpers for testing aggregates as pure functions, in a given/when/then style.
Sends a X3m.System.Message to whichever node offers its service and waits for the
response.
Declares which aggregate modules run on the local node.
Supervises the aggregate processes that run on the local node.
System Message.
Connects a router service to an aggregate, taking care of loading the aggregate, running the command, persisting the produced events and replying to the caller.
The set of responses a service call can return.
Registers system wide services.
This behaviour should be used to schedule X3m.System.Message delivery
at some point in time in the future. Implementation module should persist alarms so when process
is respawned they can be reloaded into memory.