17 Consistent Cut
Snapshot
- System recovery
- Test/debug system from some known, consistent starting point
- Aid in system migration
Naive snapshot: Stop getting messages, pause until all pending messages are processed, take the snapshot. (This harms availability)
Consistent Cut
This is a consistent cut
Event is pre-snapshot if before the cut, post-snapshot if after
Consistent cut is: if A -> B, and B is pre-snapshot, then A is pre-snapshot