Event wraps the event payload with common information (event id and time of the event)
A event is identified by the key and an incrementing sequence 'number'
A source of events.
A source of events. Implementations wrap around an underlying data store (e.g. in-memory map or DynamoDB).
Container around operations on an underlying data store e.g. Task.
EventStreamError represents any error conditions that are useful to represent for event sources.
EventStreamError represents any error conditions that are useful to represent for event sources. In particular, we need to know about attempts to store duplicate events.
Wraps an operation to save an event to an event stream.
Wraps an operation to save an event to an event stream. Saving to an event stream is through an API, which is tied to an aggregate type.
Function from a sequence to an operation that should occur (i.e. should we save the event or reject it)
Result of saving an event to the stream.
A Snapshot wraps an optional value, and tags it with an event Id.
A Snapshot wraps an optional value, and tags it with an event Id. We can say a 'snapshot' S of key K at event S.at is value S.value. The value is somehow generated from the event stream (see API.acc)
The event Id is quite a useful thing in addition to the value of the snapshot.
The type of the value wrapped by the Snapshot
Implementations of this interface deal with persisting snapshots so that they don't need to be recomputed every time.
Implementations of this interface deal with persisting snapshots so that they don't need to be recomputed every time. Specifically, implementations do NOT deal with generating snapshots, only storing/retrieving any persisted snapshot.
Container around operations on an underlying data store e.g. Task.
The type of the key for snapshots. This does not need to be the same as for the event stream itself.
The type of the value wrapped by Snapshots that this store persists.
Dummy implementation that does not store snapshots.
A event is identified by the key and an incrementing sequence 'number'
The key