What I expect from some system managing storage of streams of events, intended to be used in an event-sourced system.
- ability to create streams
- ability to delete streams
- ability to use optimistic locking on stream level
- ability to write a batch of events in one stream atomically and durably
- ability to read events from one stream
- ability to read all events in the store ( the so called "$all" stream)