Better with Kent · draft
600 PRs before I let strangers in
Getting a system ready for public launch
Hook
Every backup my system ever took
failed the restore drill
The good part
A drill found it — not an incident
- Found on purpose, before public launch
- Zero users harmed
- That is what hardening buys
Thesis
Launch is a threat-model change
not a marketing event
What changes
Three forces
Strangers
→
Scale
→
Stakes
Receipts
One month of hardening
- ~630 PRs in 31 days — a fleet of cloud agents
- 40+ PRs of alert hygiene alone
- 97 orphaned objects purged
- 1 silently failing backup lane
Force 1
Strangers
Abuse stops being hypothetical
Move 1
Ramp the front door
Invite
→
Waitlist
→
Cohorts
→
Open
Move 1 · also
Baseline before you touch the door
- Measure the activation funnel first
- “Baseline is perishable”
- Separate human actions from agent actions
Paperwork
Strangers are customers
- Terms + pricing pages
- Billing that cancels on account delete
- Data export + deletion that actually covers everything
Move 2
Assume the bad actor
- Suspension kill switch — fail-closed everywhere
- Email pause: 1 complaint or 5 bounces/day
- Quotas charged before the work runs
Move 2 · isolation
User code gets its own origin
- Hosted user apps on a separate domain — fail closed
- Tenant scoping in the query, not the caller’s manners
- Least privilege for agents and users alike
Force 2
Scale
Your busiest table × N
Move 3
Meter before you limit
Meter
→
Quota
→
Price
Move 3 · tuning
Set limits from data
- Metering landed before the limits
- Quotas were placeholders until data arrived
- Free tier sized to reach a working automation
Move 4
Kill the shared hot paths
- The table everyone writes falls over first
- Per-user stores for run-hot state
- Rate-limit at the edge, not in the database
Move 4 · how
No faith-based cutovers
Dual-write
→
Parity soak
→
Cut reads
→
Drop legacy
Force 3
Stakes
Their data · their money · your 2am
Move 5
Only page on truth
- Context in: traces, user context, diagnostics
- Noise out: 40+ PRs deleting non-incidents
- Caller errors → audit log, not pager
Move 5 · outside view
A status page that outlives you
- Separate worker — probes from outside
- Up even when deploys or the database are broken
- One email at outage start · one reminder per day
Move 6
Drill the worst day
- Restore drills found every gap alerting missed
- Unrestorable backup = failure, not checkbox
- Guardrails: one wrong migration line can’t erase prod
- When data moves, backups follow
Meta
The checklist is old — the affordability is new
- SRE-era wisdom, all of it
- Drills + isolation used to be “someday” work
- A fleet of agents made them a Tuesday
Homework
Run one restore drill this week
- Restore your latest backup somewhere disposable
- Open the app against it
- Write down what broke — that’s your launch list
Better with Kent
Drill before the strangers arrive
Strangers · scale · stakes — one honest pass over each