ordering guarantees

What ordering guarantees are provided in the projectors?


the most important guarantee is that events in a single stream are always ordered as they appear in the stream. When a projection reads multiple streams we try to do the best to keep original order of events.

Currently the replay order of events (when a projection is catching up) may be a little different than how they appeared when processing in real time. This is due to difference in a position between the event data record and the commit record.

However, we plan to mitigate this by allowing to introduce a small delay in event processing so we can re-order events as they appear in transaction file.

So, to summarize:

  1. events in any stream always in the same order as they are in the stream

  2. we do our best to keep order of events from different streams close to the order as they appeared (we will introduce more options to control this behavior)


Thanks, this helps!