Cards/ArchitectureSystem Design · Day 94Nov 4, 2026

Store What Happened, Not What's True Now

A traditional table keeping only an order's latest status beside an append-only event log of OrderPlaced, ItemAdded, PaymentReceived, OrderShipped and OrderCancelled folded into current state, with three benefits and three costs listed underneath

A row says order 8842 is cancelled. It doesn't say when, or by whom, or that it was shipped for six minutes first. Every update overwrote the evidence.

Event sourcing stops overwriting. The events become the source of truth — OrderPlaced, ItemAdded, PaymentReceived, OrderShipped, OrderCancelled — and current state is what we get by folding them together. Cancelled becomes a calculation rather than a column.

Three things come with that. A complete, tamper-resistant audit history, because nothing was ever replaced. Time travel, because the state at any past moment is just a shorter fold. And new answers from old data, because the same events can be replayed through logic written later, to settle questions nobody had thought to ask.

The costs are equally real. Replaying thousands of events per request is slow, so snapshots get taken every N events. A bug in an event's shape lives forever, because new code still has to understand the 2019 version. And deletion fights the design — forgetting one person's data inside an append-only log needs redaction or encryption, planned in from the start.

Recording decisions rather than conclusions costs more today and answers questions we haven't thought of yet.

Recording decisions rather than conclusions costs more today and answers questions we haven't thought of yet.