All challenges
intermediateReal-World Systems~50 min

Event Sourcing

Stop storing state — store the events that produced it. Instead of overwriting a row, you append an immutable log of what happened and derive current state by replaying it. Build the append-only event store, the fold that rebuilds state, snapshots to skip replaying from the beginning, and time-travel to any past version. The pattern behind ledgers, audit logs, and Git itself.