For each event, provide an implicit value of type AggregateForEvent
which specifies with which aggregate is
this event associated.
For each event, provide an implicit value of type AggregateForEvent
which specifies with which aggregate is
this event associated. This is used e.g. for id type-tagging.
If the companion object contains the implicit or extends AggregateForEvent
with the correct type parameters,
the implicit will be found automatically by the compiler, without the need for additional imports.
Event type
Aggregate type
A command result consist of:
A command result consist of:
* either a failure or success value (failure in case validation of the command input fails) * a list of created events
Default wiring of the classes involved in handling the events.
Context in which events are created and handled: for example, the currently logged in user id.
Should be implemented by events which change the "current" user, e.g.
Should be implemented by events which change the "current" user, e.g. a user-registered or user-logged-in events.
Maps event types to event listeners (synchronous and asynchronous) as well as model update functions.
A way to parametrise a whole project with a type.
A way to parametrise a whole project with a type. There should be exactly one implicit value of this type, parametrised by the type of the "user" aggregate (entity). This is needed to properly tag the user id in events.