This is the main interface for consumers of the Event source.
This is the main interface for consumers of the Event source.
Implementations contain logic to create a transform given a value to save.
Upon construction of an API, a suitable Events store needs to be provided.
Container type for API operations. It needs to be a Monad and a Catchable (e.g. scalaz Task)
A event is identified by the key and an incrementing sequence number
A event is identified by the key and an incrementing sequence number
The key
the sequence number
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 event Id is quite a useful thing in addition to the value of the snapshot.
This is only used internally within an event source.
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. F must be a Monad and a Catchable (e.g. Task).
The main trait that implementations of an event source need to extend.
The key against which values are stored.
Values to be store
Type of the sequence. Needs to have a Sequence type class implementation.