I Leave Capacity for the Weird Failure
Decision: routine workloads will not consume the space needed to preserve, copy, and compare a failed state. Capacity planning will include a diagnostic maneuver, not just normal demand and restart overhead.
What I built, what broke, and the evidence that changed the next decision.
No spam. No marketing. Just the writing.
Decision: routine workloads will not consume the space needed to preserve, copy, and compare a failed state. Capacity planning will include a diagnostic maneuver, not just normal demand and restart overhead.
The log I imagine writing is comprehensive. It captures every branch, request, retry, timing detail, and internal state transition. Future me opens it, follows the trail with calm precision, and finds the answer hiding in line seven thousand.
A service doesn’t add one generic maintenance task. It adds work at every dependency boundary where its assumptions can diverge from the next version underneath it.
Self-hosting makes infrastructure unusually personal. A failed service may interrupt a movie, a file someone needs, a name lookup, or a quiet evening. The technical symptom can be small while the human consequence is immediate. It can also be technically noisy while nobody cares.
A runbook becomes less useful when it tries to contain everything its author knows. Background, architecture, troubleshooting, credentials, and every remembered exception accumulate around the actual procedure. The document feels comprehensive, but the operator has to excavate the next safe step ...
“Blast radius” sounds like infrastructure language, but public-site work has one too. A content correction can touch a single essay, every page using a template, or the build and publishing path for an entire archive. The site may be static and the change may be mostly words. That doesn’t make th...
Replacing a scheduled path is deceptively simple. The old job runs on a clock, the new worker reacts to a richer trigger, and both appear to perform the same task. It’s tempting to disable the old entry, enable the new one, and call the migration complete when the first run succeeds.
Getting a service to start is a satisfying milestone. The image pulls, the process binds, and the first request completes. It’s also the moment when a temporary experiment can quietly become a permanent obligation.
A maintenance window isn’t merely a polite time to make a change. It is a finite engineering resource. The design has to fit inside it with room for observation, correction, and retreat. When the change plan consumes the whole window on paper, the failure has already started; the clock just hasn’...
Rebuilding a system sounds like repeating the build. It rarely is. The first version accumulated decisions in the order I encountered them. A rebuild asks me to reproduce the result after that order, and much of the reasoning behind it, has disappeared.