Beginner System design concept · Thinking in Systems · 40 mins read
Availability in Numbers
Translate availability percentages into downtime budgets, SLAs, and SLOs. Learn how series and parallel component topologies multiply or compound system availability.
99.9%, 99.99%, 99.999%
What availability percentages mean in real downtime, cost, and engineering effort.
Intuition
Adding one nine to an availability percentage sounds small, but it shrinks the allowed downtime by a factor of ten. Moving from 99.9% to 99.99% does not require 1% more work; it often requires a fundamentally different architecture, operational discipline, and budget. Engineers negotiate SLOs, design on-call rotations, and decide where to invest reliability work. Without a concrete feel for the numbers, every system drifts toward five nines whether the business needs them or not.
Mental Model
Availability is the percentage of time a system correctly serves requests over a year. Each extra nine is an order-of-magnitude improvement in downtime budget. The real design question is not 'how many nines can we build?' but 'how many nines does the business actually need, and what is it willing to pay for them?' Think of it like: A water filter that removes 99% of impurities still leaves 1% contamination — noticeable and sometimes dangerous. 99.9% looks clear, 99.99% is close to pure, and 99.999% is laboratory grade. Each step costs more to achieve and verify.
Building Blocks
- Availability Percentage: The fraction of time a system is up and correctly handling requests, usually measured over a one-year window.
- Allowed Downtime Budget: The maximum outage time that still keeps you within your target percentage. 99.9% allows about 8.7 hours per year; 99.99% allows about 52 minutes.
- SLA and SLO: An SLA is a contractual promise to customers, often with penalties. An SLO is an internal reliability target used to guide engineering and prioritize incident response.
- Error Budget: The inverse of your SLO: the amount of unreliability you are allowed to consume. It helps balance reliability work against feature velocity.
- Cost of Downtime: Revenue lost, reputation damage, and engineering hours spent during outages. This number determines whether pursuing another nine is worth it.
Definitions
- Availability
-
The proportion of time that a system is operational and performing its required function under agreed conditions.
- Usually expressed as a percentage such as 99.9% or 99.99%.
- Must be measured from the user's perspective, not just the server's heartbeat.
- Nines
-
A shorthand for the number of consecutive 9 digits in an availability target. 99.99% is called 'four nines'.
- Each additional nine reduces the yearly downtime budget by a factor of ten.
- Going from two nines to five nines is a 1,000x improvement in allowed downtime.
- Service Level Objective (SLO)
-
An internal reliability target that defines how available a service should be over a measurement period.
- SLOs drive alerting thresholds and incident severity.
- They should be ambitious but achievable; missing them constantly erodes trust.
- Service Level Agreement (SLA)
-
A contractual commitment to customers that defines availability targets and any penalties for missing them.
- SLAs are usually looser than internal SLOs to leave a safety margin.
- Breaching an SLA can trigger refunds, credits, or legal exposure.
- Error Budget
-
The amount of unreliability a team is allowed to introduce before it must slow down feature work and focus on reliability.
- If your SLO is 99.9%, your error budget is 0.1% downtime.
- Error budgets protect teams from perfectionism and from recklessness.
Bonus Points
- Downtime per year: 99% ≈ 3.65 days, 99.9% ≈ 8.76 hours, 99.99% ≈ 52.6 minutes, 99.999% ≈ 5.26 minutes.
- Durability is not availability: S3's eleven nines of durability describe data loss probability, not uptime. A system can have perfect durability and still be down.
- User-perceived availability: A backend may report 99.99% uptime while a buggy mobile client makes users think the service is broken.
- Planned maintenance: Some SLAs exclude scheduled downtime; clarify what counts before comparing numbers across vendors.
- Higher nines need better change management: Most large outages are caused by deployments and configuration changes, not random hardware failures.
Patterns
- Pick the Right Target for the Workload — When setting or revising an SLO.
- Spend Error Budgets Deliberately — When reliability work conflicts with shipping features.
- Define Availability from the User's View — When measuring whether the product is actually usable.
Strategies
- Start with a Realistic SLO When: At the beginning of a project or reliability review. How: Estimate the cost of downtime and the cost of improving reliability. Choose an SLO that is better than 'best effort' but not stricter than the business justifies. Example: A startup might begin at 99.5% and tighten to 99.9% once it lands enterprise customers.
- Build Observability Before Chasing Nines When: Before declaring that you have hit a new availability target. How: You cannot improve what you cannot measure. Instrument user-facing success rates, latency distributions, and error budgets before investing in redundancy. Example: A team notices that 90% of 'unavailability' is actually a slow dependency timing out, so they add circuit breakers before buying more replicas.
- Invest Reliability Improvements Where Failure Hurts Most When: When prioritizing reliability work across a large system. How: Focus on the critical paths that directly affect revenue or user trust. Non-critical features can live with lower targets and graceful degradation. Example: A streaming service protects the playback path with redundant origins while keeping the comments section on a simpler stack.
Availability Is More Than Infrastructure Uptime
A dashboard may show 99.99% server uptime while customers cannot check out because of a JavaScript bug, a third-party fraud check outage, or a certificate expiry. True availability must be measured end-to-end, weighted by business impact, and paired with latency and correctness. Another trap is chasing nines without considering the cost: each additional nine can require multi-region active-active setups, stricter change windows, and larger on-call teams. The right number of nines is the one that balances user trust, revenue, and engineering cost.
Tradeoffs
| Decision | Upside | Downside |
|---|---|---|
| More nines vs engineering cost | Higher customer trust, fewer penalties, ability to serve critical workloads. | Requires redundancy, better tooling, tighter processes, and larger operational investment. |
| Reliability vs feature velocity | Slower, safer releases reduce outages and protect the brand. | Competitors may ship faster; excessive caution can stall product growth. |
| User-perceived availability vs backend uptime | Measuring the full user journey reveals real pain points. | End-to-end measurement is harder and can include dependencies outside your control. |
Real World
| System | How it's used |
|---|---|
| AWS EC2 SLA | AWS commits to 99.99% monthly uptime for EC2 in multiple Availability Zones. Missed targets trigger service credits, not cash refunds. |
| Google Cloud Compute SLA | Google Cloud offers 99.99% uptime for multi-zone instances and 99.5% for single-zone instances, pricing the value of redundancy. |
| Azure Virtual Machines SLA | Microsoft commits to 99.99% for multi-instance deployments across Availability Zones and 99.9% for single-instance VMs. |
| Stripe | Payment infrastructure often targets 99.999% uptime because every minute of downtime means lost transactions for merchants. |
Interview
Questions interviewers ask
- How much downtime per year is allowed for 99.9%, 99.99%, and 99.999%?
- What is the difference between an SLA and an SLO?
- When is it not worth chasing another nine?
- How would you set an availability target for a new service?
- What is an error budget and how do you use it?
What a strong answer covers
Candidate should translate nines into downtime, explain SLA/SLO/error budget, and discuss the tradeoff between reliability, cost, and feature velocity.
Common traps
- Quoting nines without knowing the corresponding downtime.
- Confusing durability with availability.
- Assuming every service must be five nines.
- Forgetting that user-perceived availability can differ from backend uptime.
Quiz
Approximately how much downtime per year is allowed for 99.99% availability?
- About 52 minutes
- About 8.7 hours
- About 5 minutes
- About 3.6 days
99.99% (four nines) allows roughly 52.6 minutes of downtime per year.
Which statement best describes an SLO?
- An internal reliability target used to guide engineering priorities
- A contractual promise with financial penalties
- The maximum number of nodes allowed in a cluster
- The percentage of requests that must complete in under one second
An SLO is an internal objective. An SLA is the external contract that may include penalties.
What is an error budget?
- The amount of unreliability a team is allowed before slowing feature work
- The total number of errors a service can log in a day
- The budget allocated to buy redundant servers
- The difference between SLA and SLO
An error budget is the inverse of an SLO; it quantifies how much downtime is acceptable and balances reliability with velocity.
Why might user-perceived availability differ from backend uptime?
- Client bugs, third-party failures, or slow dependencies can break the user experience even when servers are healthy
- Backend uptime is always higher than user-perceived availability
- Users measure availability with different calendars
- Backend uptime excludes successful responses
User-perceived availability is end-to-end; it includes clients, networks, and dependencies.
Which is generally the biggest driver of needing more nines?
- Business cost of downtime
- Number of developers on the team
- Choice of programming language
- Length of the README
The right number of nines is driven by how much outages cost the business and what customers expect.
Parallel vs Sequential Availability
How component topology multiplies or compounds availability.
Intuition
You can buy the most reliable servers in the world, but if they all sit in a single chain, the whole system fails whenever any one link breaks. Redundancy only helps when it is arranged in parallel, not when it is strung together in series. System availability is a function of architecture, not just component quality. Understanding series and parallel math lets you place redundancy where it actually improves the end-to-end number.
Mental Model
In a series path every component must work, so you multiply their availabilities together and the result is lower than the weakest link. In a parallel set, the system survives as long as any component works, so you calculate the probability that all components fail at once and subtract it from one. The best real systems combine the two: parallel redundancy on the critical path, series only where unavoidable. Think of it like: Crossing a river: a series path is a single rope bridge made of many planks — one broken plank strands you. A parallel path is three independent bridges — as long as one stands, you cross.
Building Blocks
- Series Availability: The total availability of a chain of components is the product of each component's availability: A_total = A1 × A2 × A3.
- Parallel Availability: The total availability of redundant components is one minus the probability that every component fails: A_total = 1 − (1−A1)(1−A2).
- Complement Rule: If a component is 99.9% available, the chance it is down is 0.1%. Parallel availability uses those failure probabilities, not success probabilities.
- Single Point of Failure: A component that sits alone in series. If it fails, the whole system fails regardless of how reliable the rest of the stack is.
- Critical Path: The sequence of components that must all work for the user request to succeed. Availability improvements here have the biggest impact.
Definitions
- Series Availability
-
The availability of components arranged end-to-end where every component must be healthy for the system to function.
- Calculated by multiplying individual availabilities.
- Even reliable components chained together produce a lower total availability.
- Parallel Availability
-
The availability of redundant components where the system continues to work if at least one component is healthy.
- Calculated using the complement of all components failing simultaneously.
- Adding parallel copies gives diminishing but significant gains.
- Single Point of Failure (SPOF)
-
A component whose failure will take down the entire system.
- Removing SPOFs usually means adding parallel redundancy or automated failover.
- Common SPOFs include single databases, single load balancers, and single network links.
- Redundancy
-
Duplicating critical components so that a failure does not stop the system.
- Can be active-active, active-passive, or standby.
- Only improves availability if the redundant units fail independently.
- N+1 Redundancy
-
Having at least one spare component beyond the minimum needed to handle the load.
- N is the number of units required; +1 is the extra buffer.
- Common in power supplies, load balancers, and database replicas.
Bonus Points
- Hybrid architectures: A common pattern is a series of parallel pairs, e.g., dual load balancers → dual application servers → database cluster. Each parallel pair raises the total availability of its stage.
- Correlated failures break the math: Two replicas in the same rack share power and network. If one fails, the other is more likely to fail too, so the parallel gain is smaller than the formula suggests.
- Failover must actually work: A standby node that does not take over automatically adds no availability. Test failover paths regularly.
- Microservices multiply series risk: Each additional service in the call chain can become a serial dependency. A chain of five 99.99% services is roughly 99.95% available overall.
- Availability and capacity are linked: A single surviving node in a parallel pair must be able to handle the full load; otherwise you are available but degraded.
Patterns
- Parallel Pair on the Critical Path — When a single component failure would take down the service.
- Series Minimization — When designing a request flow.
- Failover with Health Checks — When you have active-passive redundancy.
Strategies
- Map the Critical Path First When: Before adding redundancy anywhere. How: Draw the components a request must pass through. Identify every SPOF. Add parallel redundancy to the ones on the critical path first. Example: An e-commerce checkout needs DNS, CDN, load balancer, app server, payment service, and database. DNS and the database are SPOFs unless redundant.
- Isolate Failure Domains When: When deploying parallel replicas. How: Place replicas in different racks, availability zones, or regions so they do not share fate. Example: A multi-AZ database cluster can survive the loss of an entire data center.
- Test Failover in Production-like Conditions When: Continuously, not just during launch. How: Run game days or chaos engineering exercises that terminate nodes and verify that traffic reroutes and services recover. Example: Netflix's Chaos Monkey randomly terminates instances to ensure automated failover works.
The Hidden Assumption: Independent Failures
Parallel availability formulas assume that components fail independently. In reality, replicas often share power, cooling, operating-system patches, deployment pipelines, or code bugs. A bad rollout can crash every replica at once, turning a supposedly redundant system into a total outage. That is why availability engineering also includes change management, canary deployments, blast-radius containment, and observability. The math gives you the theoretical ceiling; operational discipline determines how close you get.
Tradeoffs
| Decision | Upside | Downside |
|---|---|---|
| Redundancy cost vs availability gain | Each parallel replica raises availability and can share load. | More hardware, more licenses, more operational complexity, and more things to keep in sync. |
| Automated failover vs split-brain risk | Fast recovery improves availability metrics. | Aggressive failover can create two primaries, causing data conflicts. |
| Synchronous replication vs asynchronous replication | Synchronous replication keeps data consistent across replicas. | It adds latency and can reduce availability because a slow replica blocks writes. |
Real World
| System | How it's used |
|---|---|
| Cloud Load Balancers | Cloud providers deploy load balancers as redundant instances behind anycast IPs. If one instance fails, traffic moves to another without user impact. |
| DNS Providers | Major DNS services use globally distributed name servers. A user query can be answered by any healthy server, making DNS highly parallel. |
| Database Clusters | Databases like PostgreSQL with streaming replicas or MySQL Group Replication keep multiple copies. Some topologies are active-active; others promote a standby on failure. |
| CDN Edge Networks | Content delivery networks place caches around the world. If one edge fails, requests are routed to the next nearest cache, improving both availability and latency. |
Interview
Questions interviewers ask
- How do you calculate availability for components in series?
- How do you calculate availability for redundant components in parallel?
- If two 99.9% services are in series, what is the total availability?
- What is a single point of failure and how do you remove it?
- Why does correlated failure reduce the benefit of redundancy?
What a strong answer covers
Candidate should write the series and parallel formulas, calculate a simple example, identify SPOFs, and explain why redundancy only helps when failures are independent.
Common traps
- Forgetting to convert percentages to probabilities before multiplying.
- Assuming two replicas always give 100% availability.
- Ignoring the need for automated failover.
- Forgetting that shared infrastructure creates correlated failures.
Quiz
Two services each with 99.9% availability are connected in series. What is the approximate total availability?
- 99.8%
- 99.99%
- 99.9999%
- 99.0%
Series availability is A1 × A2. 0.999 × 0.999 ≈ 0.998, so about 99.8%.
Two 99.9% available components are placed in parallel. What is the approximate total availability?
- 99.9999%
- 99.9%
- 99.8%
- 99.99%
Parallel availability is 1 − (0.001)² = 0.999999, roughly 99.9999%.
Which topology is most likely to create a single point of failure?
- A single database that every request must read from
- Two active-active load balancers
- A multi-AZ replicated cluster
- A CDN with hundreds of edge caches
A single required database is a single point of failure because its failure brings the whole system down.
What does N+1 redundancy mean?
- One extra component beyond what is needed to handle the load
- One node for every user
- Adding one more nine of availability
- One network link per availability zone
N+1 means you have the required N units plus one spare.
Why can correlated failures reduce the real availability of a redundant system?
- Replicas may share power, network, or code and fail together
- Redundant systems always have lower availability
- Correlated failures increase component reliability
- They have no effect because the math accounts for them
If replicas share failure domains, they can all fail at once, making redundancy less effective than the formula predicts.
Practice availability in numbers in PRISM
Concepts stick when you watch them fail. Build an architecture that depends on availability in numbers, push traffic through it in the PRISM simulator, and see the latency and error rates change as you adjust the design.