Index
Essays
How distributed systems fail, and the design decisions that stop them. Every essay has a simulation you can break.
Long-form
Each with a simulation.
- 01 Retries are a load amplifier A retry policy is a promise about how much extra traffic you will send at the worst possible moment. Most teams never read the promise.
- 02 Exactly-once is a promise you make to a person Networks deliver at most once or at least once. "Exactly once" is something you build at the edges, one side effect at a time.
- 03 Dead or just slow? Every failure detector trades how quickly it notices a death against how often it mourns a node that was only late. You get to pick the trade, not escape it.
- 04 A queue is a promise to be slow later Utilization near 100 % looks like efficiency on a dashboard and feels like an outage to the people waiting. Queues don't remove overload; they postpone it.
Notes
Shorter. Things I've had to learn twice.
- Migrating off a monolith without stopping the money The strangler pattern is easy to draw and hard to finish. Most of the difficulty is in the data, and most of the risk is in the last step nobody schedules.
- Mask personal data before it has a chance to be logged If raw personal data reaches your logs, your analytics or your search index even once, you have a cleanup project, not a feature. Masking belongs at the front of the pipeline.
- Translations are a build artifact, not a spreadsheet Most internationalisation bugs come from treating translated text as content someone pastes in. Treat it like code — keyed, versioned, tested and shipped — and most of them disappear.
- Coding agents need a map, not a bigger prompt AI coding agents fail on real codebases for the same reason new hires do — they can't see the shape of the system. Give them a map, a narrow brief and a way to prove their work.