Comparisons
Pairs that get conflated in real conversations. Neither column wins — what decides is the requirement, and each record leads with the confusion, because the confusion is the reason the record exists at all.
OLTP vs OLAPBatch vs StreamingETL vs ELTParquet vs AvroLake vs Warehouse vs LakehouseCDC vs PollingEvent modelling vs Snapshot modellingFull refresh vs IncrementalLambda vs KappaOrder grain vs Order-line grain
Event modelling vs Snapshot modelling
What people get wrong about this pair
Events are assumed to subsume snapshots because state can be derived from them. It can, but only if every event since the beginning is retained and the derivation is cheap — and neither is usually true.
Events
Use it when
You need to know what changed, when, and in what order — and to be able to reconstruct any past state.
Snapshots
Use it when
You need the state at a point in time, cheaply, without replaying everything that produced it.
| Dimension | Events | Snapshots |
|---|---|---|
| Answers "what changed" | Directly | Only by diffing consecutive snapshots |
| Answers "state on 3 March" | By replaying every event up to that date | Directly, by reading one row |
| Storage | Grows with activity | Grows with entities times periods, whether or not anything happened |
| Late data | Can be inserted in order | Requires recomputing the affected snapshots |
| Typical use | Behavioural analysis, audit, reconstruction | Balances, inventory, headcount, subscription state |