The Nine-Hour Migration: Postgres, Locks, and Why I Now Test Drills in Prod-Shaped Replicas
A simple ALTER TABLE that should have been instant. A user_id column. A live application. Nine hours of downtime. Here's the post-mortem and the playbook.
ACID, isolation levels, indexing strategy, the N+1 trap, locking, and the day-to-day failure modes of relational databases — practical notes from real-world use.
5 articles · updated regularly
A simple ALTER TABLE that should have been instant. A user_id column. A live application. Nine hours of downtime. Here's the post-mortem and the playbook.
Two strategies for concurrent writes. Pick wrong and you either serialise all your traffic or lose data quietly.
Why a single missing index can turn your 10ms endpoint into a 10-second endpoint — and why adding the wrong one makes writes slower.
The single most common performance bug in ORM-backed apps. Here's how it sneaks in and the three reliable ways to stop it.
Atomicity, Consistency, Isolation, Durability — a plain-English tour plus the real-world price tag of each.