System design · interactive
Availability and the nines
A request needs the load balancer, an app server and the database all working. Availabilities in a chain multiply, so the whole is worse than any part. Redundant copies in parallel multiply the failure chances instead, which buys back the nines.
Load balancer
99.990%
App ×1
99.900%
Database ×1
99.950%
- Availability
- 99.840%
- Nines
- 2.8
- Down per year
- 14.0 h
1.2 h a month · single parts: app 99.9%, db 99.95%, LB 99.99%
Three parts in a chain: 99.99% × 99.9% × 99.95% = 99.840%, worse than every one of them. Over 14 hours of downtime a year.
1 2 Ten 99.9% services in a request path give about 99%. Every hard dependency counts.
A = a₁ × a₂ × a₃
3 4
In production
Tools and technologies
Every SLA is expressed in nines.
Not tied to one language — use these names when you search docs or design a system.