← Back to Build Log
Sep 9, 9:28 AM PSTRolls & Cutsinfrastructure

Three production database changes, each rehearsed and rolled back before it was real

Schema changes are the class of work with no undo, so none of these were applied on trust. Each one was run first as a rehearsal inside a transaction that was then thrown away, and the rehearsal was followed by a check confirming the database really had returned to its previous state — proving the rehearsal proved something. Only then was the change applied for real. The permission rules behind the new rename were exercised twenty different ways against the live service under real sign-ins, covering who is allowed to do it, who is refused, and what happens to names that are blank, padded, or too long. A readiness check that initially looked like a pass turned out to be answering a different question entirely, and was rebuilt to test the thing it claimed to.

#reliability#backend
Wednesday, September 9, 2026 at 4:28 PM UTC
View commit

Share This Ship

Post 1/7100/280
🏗️ Shipped: Three production database changes, each rehearsed and rolled back before it was real 🧵
Post 2/790/280
Schema changes are the class of work with no undo, so none of these were applied on trust.
Post 3/7235/280
Each one was run first as a rehearsal inside a transaction that was then thrown away, and the rehearsal was followed by a check confirming the database really had returned to its previous state — proving the rehearsal proved something.
Post 4/742/280
Only then was the change applied for real.
Post 5/7238/280
The permission rules behind the new rename were exercised twenty different ways against the live service under real sign-ins, covering who is allowed to do it, who is refused, and what happens to names that are blank, padded, or too long.
Post 6/7158/280
A readiness check that initially looked like a pass turned out to be answering a different question entirely, and was rebuilt to test the thing it claimed to.
Post 7/782/280
Follow the build → build-log-five.vercel.app

#reliability #backend #buildinpublic
← Capture polish: the note composer opens ready to type, and a row never hides its timeStarted automating the hardware test round, and it immediately found things a person would miss→