Three Contracts: Snapshot, Outbox Events, Compacted State
a purged diary cannot seed a newcomer; the phone book or a fresh photograph can
Record snapshot
boundary
consistent copy at LSN B
pressure
throttled replica reads
lifetime
dropped after catch-up
seeds newcomer
yes, exactly once per bootstrap
Outbox events
key
event id, for dedup
kept as
append-only plus retention
deletes are
tombstone events, kept briefly
seeds newcomer
never: purged pages stay torn
Entity state
key
entity key, latest wins
kept as
compacted: latest per key
deletes are
tombstones until observed
seeds newcomer
yes, while retention holds
The rule this strip exists to teach
Snapshot, event topic, and state topic are three different contracts: state when each compacts, what each keys by,
and which one may seed a newcomer. A purged outbox replays zero events, so it seeds nothing.
Two corollaries
Tombstones must outlive every follower's lag, or a delete resurrects. The outbox contract shields the index
from internal schema changes: drop a column upstream, the event shape stays green.