Package akka.persistence.typed
Class EventAdapter<E,P>
- java.lang.Object
-
- akka.persistence.typed.EventAdapter<E,P>
-
public abstract class EventAdapter<E,P> extends java.lang.Object
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):- extracting events from "envelopes"
- adapting events from a "domain model" to the "data model", e.g. converting to the Journals storage format, such as JSON, BSON or any specialised binary format
- adapting events from a "data model" to the "domain model"
- adding metadata that is understood by the journal
- migration by splitting up events into sequences of other events
- migration filtering out unused events, or replacing an event with another
-
-
Constructor Summary
Constructors Constructor Description EventAdapter()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract EventSeq<E>
fromJournal(P p, java.lang.String manifest)
Transform the event on recovery from the journal.abstract java.lang.String
manifest(E event)
Return the manifest (type hint) that will be provided in thefromJournal
method.abstract P
toJournal(E e)
Convert domain event to journal event type.
-
-
-
Method Detail
-
fromJournal
public abstract EventSeq<E> fromJournal(P p, java.lang.String manifest)
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 specialisedEventSeq.single
method to emit exactly one event, orEventSeq.empty
in case the adapter is not handling this event.- Parameters:
p
- event to be adapted before delivering to theEventSourcedBehavior
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
-
manifest
public abstract java.lang.String manifest(E event)
Return the manifest (type hint) that will be provided in thefromJournal
method. Use""
if manifest is not needed.
-
toJournal
public abstract P toJournal(E e)
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.- Parameters:
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
-
-