abstract class EventAdapter[E, P] extends AnyRef
- Alphabetic
- By Inheritance
- EventAdapter
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new EventAdapter()
Abstract Value Members
- abstract def fromJournal(p: P, manifest: String): EventSeq[E]
Transform the event on recovery from the journal.
Transform the event on recovery from the journal. Note that this is not called in any read side so will need to be applied manually when using Query.
Convert a event from its journal model to the applications domain model.
One event may be adapter into multiple (or none) events which should be delivered to the
EventSourcedBehavior
. Use the specialised method to emit exactly one event, or EventSeq.empty in case the adapter is not handling this event.- p
event to be adapted before delivering to the
EventSourcedBehavior
- manifest
optionally provided manifest (type hint) in case the Adapter has stored one for this event,
""
if none- returns
sequence containing the adapted events (possibly zero) which will be delivered to the
EventSourcedBehavior
- abstract def manifest(event: E): String
Return the manifest (type hint) that will be provided in the
fromJournal
method.Return the manifest (type hint) that will be provided in the
fromJournal
method. Use""
if manifest is not needed. - abstract def toJournal(e: E): P
Convert domain event to journal event type.
Convert domain event to journal event type.
Some journal may require a specific type to be returned to them, for example if a primary key has to be associated with each event then a journal may require adapters to return
com.example.myjournal.EventWithPrimaryKey(event, key)
.The
toJournal
adaptation must be an 1-to-1 transformation. It is not allowed to drop incoming events during thetoJournal
adaptation.- e
the application-side domain event to be adapted to the journal model
- returns
the adapted event object, possibly the same object if no adaptation was performed
Facility to convert from and to specialised data models, as may be required by specialized persistence Journals. Typical use cases include (but are not limited to):