there actually two kinds of reordering:
true reordering which can only happen in a distributed scenario (does not apply now), when you receive events with some delays.
reordering required to fix differences between order of how events were written compared to how they were committed.
Consider: write A to S1, write B to S2, commit B, commit A.
The perfect order is: B, A (B was committed first)
The almost perfect order is: A, B (A written first)
Without re-ordering fromStreams() while catching-up a projection will read A then B. And receive B and then A if processing live stream.
NOTE: this can only happen if you use manually started/committed transactions (or in a distributed environment)
- useEventIndexes always read events in the perfect order (it is disabled as it does not change anything)
For now use reordering only if item 2) is important for you. This feature is designed to be used in the future versions.