Designing Systems for Failure, Not Uptime
Uptime is a lagging indicator. Resiliency is a leading indicator. How we architect for the inevitable crash.
The Blast Radius
When a component fails, how much of the system does it take down with it? A well-designed system has bulkheads. If the billing service crashes, the core API should effectively ignore it and keep serving requests (perhaps in a degraded, free-tier state) rather than erroring out. We optimize for "graceful degradation" over "perfect operation".
This principle was central to our work in the Multi-Region Reliability case study, where region failure was treated as a handled exception, not a disaster.
Recovery as a Muscle
If you never crash, your recovery scripts are untested code. We prefer to fail often and recover instantly. This means automated control planes that detect health anomalies and cycle instances without human intervention. The system must be self-healing, because at scale, human pager fatigue is the biggest risk to reliability.
See Netflix's Simian Army for the origins of chaos engineering.
Don't promise your customers you won't fail. Promise them that when you do, they probably won't even notice.