Availability Math & the Nines
Convert nines to downtime minutes, remember serial dependencies multiply (lowering the ceiling) while redundancy combines as 1 - (1-a)^n, each nine costs about 10x more, and keep measured, SLA, and SLO as three separate numbers.
Availability, in minutes you can feel
Availability is the fraction of time (or of valid requests) a service is up and serving correctly. People quote it in "nines," and the single most useful senior habit is to translate nines into minutes of allowed downtime per month, because that is what an on-call rotation actually feels.
The math: allowed downtime = (1 - availability) x window. For a 30-day month (43,200 minutes):
Nines Availability Downtime / month Downtime / year
two 99% ~7.2 hours ~3.65 days
three 99.9% ~43.8 minutes ~8.76 hours
four 99.99% ~4.4 minutes ~52.6 minutes
five 99.999% ~26 seconds ~5.26 minutes
Notice the leap between each row. Going from 99.9% to 99.99% shrinks your monthly downtime budget from 43.8 minutes to 4.4 minutes. That is not "a bit better," it is a 10x reduction in the failure you are allowed, and every added nine costs roughly 10x more to achieve. The reason: the cheap failures (a bad deploy, a full disk) are gone by three nines, so the next nine forces you to attack rare, expensive causes: multi-AZ redundancy, automated failover measured in seconds, eliminating every manual step from recovery, and testing failure paths constantly. Human response time alone (someone gets paged, opens a laptop, diagnoses) blows a five-nines budget, so five nines effectively means no human in the recovery loop.
Dependencies combine
Serial dependencies multiply. If your checkout calls auth, inventory, and payments in series and each is 99.9% available, your ceiling is 0.999^3 = 99.7%, worse than any single component. More hops means a lower ceiling. You cannot be more available than the product of everything you synchronously depend on.
Redundancy adds availability. Two independent replicas of a 99% component, where either can serve, fail only when both fail: 1 - (1 - 0.99)^2 = 99.99%. Parallel combines as 1 - (1 - a)^n. This is why the fix for a shaky dependency is often a second independent copy, not a more reliable single copy.
Interview nuance: three different numbers
Interviewers probe whether you distinguish three different numbers. Measured availability is what your telemetry actually observed last month. The SLA is the external contractual promise with financial penalties (service credits) if you miss it. The SLO is your stricter internal target, deliberately tighter than the SLA so you get warning before you breach the contract. A team runs to a 99.95% SLO to safely honor a 99.9% SLA.
Common wrong turn: chasing five nines everywhere. If your database ceiling is 99.9% and a feature earns 20 dollars a minute of downtime saved, spending a quarter's engineering to add a nine it can never reach is malpractice. Match the target to revenue impact and to the dependency ceiling.
Recap: convert nines to downtime minutes, remember serial dependencies multiply (lowering the ceiling) while redundancy combines as 1 - (1-a)^n, each nine costs about 10x more, and keep measured, SLA, and SLO as three separate numbers.
Apply
Your turn
The task this lesson builds to.
Compute the allowable monthly downtime for a checkout service at 99.9% vs 99.99%, then decide which nine is worth the cost and justify it.
Think about
- How do serial dependencies combine, and how does redundancy add availability?
- Why does each added nine cost roughly 10x more?
- What is the difference between measured, promised (SLA), and target (SLO) availability?
Practice
Make it stick
A second problem on the same idea, so it survives past today.
Design the availability target and redundancy strategy for Stripe-style payment authorization at 5,000 auth requests/second, where a single 99.99% card-network dependency sits on the critical path and the business wants 'four nines end to end.' Explain what is and is not achievable and how you close the gap.
Think about
- Why does one 99.99% serial dependency cap the end-to-end number below four nines?
- How does routing through multiple card networks change the ceiling?
- What target do you actually commit to, and how do you degrade gracefully on a network blip?