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.
Share This Ship
🏗️ Shipped: 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.
Follow the build → build-log-five.vercel.app #reliability #backend #buildinpublic