|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
T
- The data type used to store payloadspublic interface EventEntryStore<T>
Interface describing the mechanism that stores Events into the backing data store.
Method Summary | |
---|---|
Iterator<? extends SerializedDomainEventData<T>> |
fetchAggregateStream(String aggregateType,
Object identifier,
long firstSequenceNumber,
int batchSize,
javax.persistence.EntityManager entityManager)
Creates an iterator that iterates through the events for an aggregate of given type and given
identifier starting at given firstSequenceNumber . |
Iterator<? extends SerializedDomainEventData<T>> |
fetchFiltered(String whereClause,
Map<String,Object> parameters,
int batchSize,
javax.persistence.EntityManager entityManager)
Creates an iterator that iterates through the Events that conform to the given JPA whereClause . |
Class<T> |
getDataType()
Returns the type used to store serialized payloads. |
SerializedDomainEventData<T> |
loadLastSnapshotEvent(String aggregateType,
Object identifier,
javax.persistence.EntityManager entityManager)
Load the last known snapshot event for aggregate of given type with given identifier
using given entityManager . |
void |
persistEvent(String aggregateType,
DomainEventMessage event,
SerializedObject<T> serializedPayload,
SerializedObject<T> serializedMetaData,
javax.persistence.EntityManager entityManager)
Persists the given event which has been serialized into serializedEvent in the
backing data store using given entityManager . |
void |
persistSnapshot(String aggregateType,
DomainEventMessage snapshotEvent,
SerializedObject<T> serializedPayload,
SerializedObject<T> serializedMetaData,
javax.persistence.EntityManager entityManager)
Persists the given event which has been serialized into serializedEvent in the
backing data store using given entityManager . |
void |
pruneSnapshots(String type,
DomainEventMessage mostRecentSnapshotEvent,
int maxSnapshotsArchived,
javax.persistence.EntityManager entityManager)
Removes old snapshots from the storage for an aggregate of given type that generated the given
mostRecentSnapshotEvent . |
Method Detail |
---|
void persistEvent(String aggregateType, DomainEventMessage event, SerializedObject<T> serializedPayload, SerializedObject<T> serializedMetaData, javax.persistence.EntityManager entityManager)
event
which has been serialized into serializedEvent
in the
backing data store using given entityManager
.
These events should be returned by the fetchAggregateStream(...)
methods.
aggregateType
- The type identifier of the aggregate that generated the eventevent
- The actual event instance. May be used to extract relevant meta dataserializedPayload
- The serialized payload of the eventserializedMetaData
- The serialized MetaData of the evententityManager
- The entity manager providing access to the data storeSerializedDomainEventData<T> loadLastSnapshotEvent(String aggregateType, Object identifier, javax.persistence.EntityManager entityManager)
type
with given identifier
using given entityManager
.
aggregateType
- The type identifier of the aggregate that generated the eventidentifier
- The identifier of the aggregate to load the snapshot forentityManager
- The entity manager providing access to the data store
Iterator<? extends SerializedDomainEventData<T>> fetchAggregateStream(String aggregateType, Object identifier, long firstSequenceNumber, int batchSize, javax.persistence.EntityManager entityManager)
type
and given
identifier
starting at given firstSequenceNumber
. When using batched fetching, the
given batchSize
should be used. The given entityManager
provides access to the backing
data store.
Note that the result is expected to be ordered by sequence number, with the lowest number first.
aggregateType
- The type identifier of the aggregate that generated the eventidentifier
- The identifier of the aggregate to load the snapshot forfirstSequenceNumber
- The sequence number of the first event to include in the batchbatchSize
- The number of entries to include in the batch (if available)entityManager
- The entity manager providing access to the data store
Iterator<? extends SerializedDomainEventData<T>> fetchFiltered(String whereClause, Map<String,Object> parameters, int batchSize, javax.persistence.EntityManager entityManager)
whereClause
.
When the implementation uses batched fetching, it should use given batchSize
. The given
parameters
provide the values for the placeholders used in the where clause.
The "WHERE" keyword must not be included in the whereClause
. If the clause is null or an empty
String, no filters are applied, and an iterator is returned that scans all events in the event store.
The iterator should return events in the order they were added to the event store. In either case, it must
ensure that events originating from the same aggregate are always returned with the lowest sequence number
first.
whereClause
- The JPA clause to be included after the WHERE keywordparameters
- A map containing all the parameter values for parameter keys included in the where clausebatchSize
- The total number of events to return in this batchentityManager
- The entity manager providing access to the data store
void pruneSnapshots(String type, DomainEventMessage mostRecentSnapshotEvent, int maxSnapshotsArchived, javax.persistence.EntityManager entityManager)
type
that generated the given
mostRecentSnapshotEvent
. A number of maxSnapshotsArchived
is expected to remain in the
archive after pruning, unless that number of snapshots has not been created yet. The given
entityManager
provides access to the data store.
type
- the type of the aggregate for which to prune snapshotsmostRecentSnapshotEvent
- the last appended snapshot eventmaxSnapshotsArchived
- the number of snapshots that may remain archivedentityManager
- the entityManager providing access to the data storevoid persistSnapshot(String aggregateType, DomainEventMessage snapshotEvent, SerializedObject<T> serializedPayload, SerializedObject<T> serializedMetaData, javax.persistence.EntityManager entityManager)
event
which has been serialized into serializedEvent
in the
backing data store using given entityManager
.
These snapshot events should be returned by the loadLastSnapshotEvent(...)
methods.
aggregateType
- The type identifier of the aggregate that generated the eventsnapshotEvent
- The actual snapshot event instance. May be used to extract relevant meta dataserializedPayload
- The serialized payload of the eventserializedMetaData
- The serialized MetaData of the evententityManager
- The entity manager providing access to the data storeClass<T> getDataType()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |