Cache Invalidation Is Not the Hard Part
Deleting a key is one line. The hard parts are the copies you forgot, the read-write race that leaves stale data with clean logs, and the stampede at expiry.
5 min read
8 posts, newest first.
Deleting a key is one line. The hard parts are the copies you forgot, the read-write race that leaves stale data with clean logs, and the stampede at expiry.
5 min read
Engineers argue consistency via CAP. The answerable question is what a user will forgive seeing, and how to get that from a stakeholder instead of guessing.
5 min read
Teams split monoliths for throughput and got an org-chart fix. The honest case is deploy cadence and ownership — plus narrow cases where boundaries help load.
5 min read
Sharding usually arrives years early and charges rent forever in lost joins, transactions and simplicity. What to exhaust first, and the signals that it's time.
6 min read
"It's read-heavy, so we'll add a cache" is the least examined sentence in system design. Four things that break it, and how to check it in an afternoon.
6 min read
Four clarifying questions branch a design; the rest are ritual. What to ask before drawing, and how to tell a load-bearing answer from one you'll never use.
5 min read
Adding a queue doesn't absorb a spike, it defers one. What backpressure and rate limiting actually do, why they're different, and the failure they each prevent.
4 min read
A box-and-arrow diagram can't tell you whether your design works. Here's what interviewers are probing for, and why drawing tools can't help you practice it.
4 min read