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).
Trait that implementations of an event source need to extend where the sequence number is just a long.
The key against which values are stored.
Values to be store