I am playing with ES for a disconnected client implementation.
We are not taking the approach Greg suggests in his talks (store and forward commands), as if something happens on a disconnected client, it happened.
There is no possibility of rejecting it.
In order to successfully merge these disconnected events some form of re-ordering is required.
i.e. an event is the store at 13:41
an event of the same type occurred on a disconnected client at 13:00
When the client re-connects, their event is older and can not be applied to the end of the stream.
We could discard that event but for completeness of the stream, i’d like to “insert” events into the stream at the appropriate place.
Is there any concept of reordering a stream?
Can you rewind a stream to a particular position?