Concept · Requirements & scale

Availability and the nines

What 99.9% and 99.99% mean in minutes of downtime, and how serial dependencies multiply.

3 minuptimehigh availability

Availability is the fraction of time (or of requests) a system works. It's quoted in "nines", and each extra nine allows ten times less downtime.

AvailabilityDowntime per yearPer month (30 days)
99%3.65 days7.2 hours
99.9%8.8 hours43 minutes
99.95%4.4 hours22 minutes
99.99%53 minutes4.3 minutes
99.999%5.3 minutes26 seconds

Dependencies multiply

If a request needs services A and B, and each is 99.9% available, the request succeeds only when both do:

text
0.999 × 0.999 = 0.998 → 99.8%

Ten serial dependencies at 99.9% give about 99.0%. Your availability can't exceed that of your least available hard dependency, and each additional one lowers it.

Redundancy adds nines

If either of two independent replicas can serve a request, it fails only when both are down:

text
1 − (0.001 × 0.001) = 0.999999

In practice failures aren't independent — replicas share a region, a deploy pipeline, a configuration bug — so real gains are smaller. Spreading replicas across zones and regions, and deploying changes gradually, is what makes the independence assumption closer to true.

Practical consequences

  • Make optional dependencies optional in code: a failed recommendations call shouldn't fail the page (graceful degradation).
  • Planned maintenance counts against availability unless it's invisible to users.
  • 99.99% and above usually requires automated failover, because no human can respond, diagnose and fix within four minutes a month.

See SLIs, SLOs and error budgets for how teams set and spend availability targets.

Learn it in depth