...
- For each event source event sequence Source, the last processed position Pos. For a system with multiple inputs, this can be represented as [StreamSource, Pos]
- The stream processing engine internal state S_SYS
- The state that has already been emitted: S_OUT
...
A stream processing system snapshot is represented by {[SeqSource, Pos], S_SYS, S_OUT} at a given time.
...
Also note that in this particular case, n2 does not need to be reset to Snapshot_n2_1 because its input stream S2 does not contain any duplicates duplicate S_OUT.
Conclusion 2: Exactly once delivery requires a global snapshot for all the nodes in the same processing tree.
...
Condition 1: For all the messages produced by processing node N and are before the marker for snapshot version V from N, the state change introduced by those messages should all be all included in snapshot version V.
...