What ordering guarantees are provided in the projectors?
Hi,
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:
-
events in any stream always in the same order as they are in the stream
-
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)
-yuriy
Thanks, this helps!