Module 7 · Keeping It Running and Safe · Lesson 28 of 35
What is high availability? Counting nines and removing single points of failure
13 minFree System design course · Beginner to intermediateLesson 7.3By Saket Bhatnagar
Researched and drafted with AI, reviewed and edited by Saket Bhatnagar.
In short
- What is high availability? It means the system keeps answering when parts fail, because every important part has a ready spare.
- Each extra nine is ten times less downtime: 99.9% allows 43.2 minutes a month, 99.99% only 4.32.
- Parts in a chain multiply their uptimes, so downtime piles up; spares side by side cancel it, unless they share something hidden.
Video lesson · coming soon
What is high availability? Counting the nines
Lala, your AI mentor, will walk you through this lesson in a short animated video. Until then, everything is here to read and try.
- 01 99.9 or 99.99?
- 02 Nines to minutes
- 03 Two power lines, one pole
- 04 A chain with spares in two zones
- 05 Spot the single point of failure
- 06 Circle every part with no spare
Still stuck on the investors’ question, “99.9% or 99.99%?”, Meera Kulkarni asks Sandeep Patil what to promise.
Sandeep pulls up last month: 22 minutes down out of the 43,200 minutes in a 30-day month, so about 99.95% up. “99.99% allows only 4.32 minutes a month,” he says. “That one outage was five times that.”
“But we have two of everything now,” says Arjun Nair, pointing at four app servers and two load balancer nodes. Sandeep draws the real wiring: one Redis node, one message broker, a database standby in the primary’s building, and one DNS provider.
Zoya Mirza asks: “What happens when that whole building goes dark?” Sandeep circles the shared parts in red. SeatJaldi had “two of everything”, yet one small failure could still switch off the sale. Which parts were really single, and how many minutes does each nine allow?
What is high availability?
High availability means the system keeps answering when parts fail. Availability, from lesson 5, is the share of time a system is up. High availability keeps that share close to 100%.
Engineers say how close to 100% a system gets by counting nines.
Keep one line in your head: parts in a chain multiply their uptimes, so downtime piles up; spares side by side cancel it.
- In a chain, every part must be up, so small gaps add up.
- With a spare beside a part, both must fail together, so the gap nearly vanishes, unless the two share something hidden.
- You have seen this: a payments app says “Our bank partner is down”, while another pays fine. The first had one bank link, the second a spare.
- On one bad day, many unrelated apps fail together. They all leaned on one shared service.
What does 99.99 uptime mean?
99.99% uptime allows about 4.3 minutes of downtime in a 30-day month, and each extra nine means ten times less downtime. That month is 30 × 24 × 60 = 43,200 minutes, and 0.01% of it is 4.32.
For Shabnam, that is 4.32 minutes of darkness a month. Each nine usually costs more than the one before: more spares, in more places.
What is a single point of failure, and how do you remove it?
A single point of failure, from lesson 1, is one part with nothing ready to take over. You remove it by adding a spare in a separate place, so both must fail at once. “Separate” means its own power and network.
A region, such as Mumbai, holds several zones; lesson 22 showed what losing a whole region costs. For Shabnam, a zone is a second hospital building on its own power; a region is the whole city grid.
Past the phone, each box below is really two: one per zone, or one per DNS provider. Hover to see where each spare lives.
A chain of parts, each with a spare in a second zone
Drag to exploreA fan’s phone looks up SeatJaldi’s name, then books through the load balancer pair, app servers, Redis, the database and a ticket-job queue. Each part has a spare in a second zone or provider, so one failure does not stop the chain.
Diagram connections:
- Client to Two DNS providers (Look up name)
- Client to Load balancer pair (Request)
- Load balancer pair to App servers (Spreads load)
- App servers to Redis in two zones (Seat holds)
- App servers to Booking database (Write booking)
- App servers to Message queue pair (Ticket jobs)
- Client: A fan’s phone sending a booking.
- Two DNS providers: Either one can answer SeatJaldi’s name.
- Load balancer pair: One per zone; either can carry all the traffic.
- App servers: Stateless servers in both zones; any one can answer.
- Redis in two zones: Primary in zone A, replica in zone B, for seat holds.
- Booking database: Primary in zone A, standby in zone B.
- Message queue pair: A message broker per zone for ticket and SMS jobs.
What just happened? Each single point of failure was a part everything passed through, often one nobody drew, like Shabnam’s pole. Each fix also shrinks how much one failure takes with it.
Meera’s investors also want a promise. A number written into a contract, with money back or a credit if it is missed, is no longer only a goal.
Why do two copies still fail together?
Copies are independent only if they share nothing. Many real outages come from something shared: one zone, one settings push, one DNS provider.
With each part 99.9%, a Redis pair is down 0.001 × 0.001 × 43,200 = 0.0432 minute, about 2.6 seconds a month. Five pairs in a chain: about 13 seconds. That assumes the switch to the spare takes no time. Say spotting a failure and switching takes 2 minutes: each failure then costs 2 minutes, far more than 13 seconds.
Real life breaks the “independent” part. In October 2025, one large cloud provider’s own report described a database service’s DNS record left empty by its own automation. Many of its other services looked up that name, so they and their spares failed together. The record was fixed in under three hours; full recovery took about 14.5 hours.
- Test failover, the switch to the spare. A spare you have never switched to may not start.
- A standby updated after each booking is saved can lose the last few bookings on failover. One updated before the save finishes loses none, but every write waits.
- Write down your RPO (recovery point objective): how much recent data you can lose.
- Write down your RTO (recovery time objective): how long you can be down while you switch.
- Roll changes out zone by zone, so a bad change has a blast radius of one zone.
When a seller says “designed for 99.99%”, ask whether a contract backs it.
| Statement | What it means |
|---|---|
| “Designed for 99.99%” | A goal the builders aim at; look for an SLA behind it |
| “SLA of 99.9%” | A written promise with a penalty, often a credit on the next bill, if it is missed |
Try it yourself
Draw the chain
Write five boxes in a row: load balancer, app servers, Redis, database, message broker. Give every box except the broker a spare in a second zone.
Price each box
A lone 99.9% part is down 43.2 minutes a month. A pair is down 0.001 × 0.001 × 43,200 = 0.0432 minute.
Add the chain
Add the downtime of the four pairs and the lone broker.
Check your answer
You are right if you get about 43.4 minutes a month, almost all of it from the lone broker. One single point of failure sets the nines for the whole chain.
Back to the red circles. Sandeep walks SeatJaldi’s wiring the way Shabnam walks the hospital, and finds four single parts.
Redis and the message broker get a spare in a second zone, the standby moves to the other zone, and a second DNS provider joins. Each spare costs money, Sandeep warns. Five lone parts in a chain would allow about 3.6 hours a month. With a spare in a second zone for each, it is under a minute on paper.
Meera now knows each nine’s price: 43.2 minutes a month at 99.9%, 4.32 at 99.99%. She still does not promise 99.99%: the paper number assumes the spares share nothing. Meera can now say how much downtime the design allows. But what counts as “up”, and how will they know they are meeting it?
Check yourself
Check yourself
SeatJaldi has spares in two zones for every part except one Redis node. Which change removes the most downtime?
Pick an answer to see why it is right or wrong.
Check yourself
SeatJaldi runs in two zones, but both depend on one DNS provider. What is true?
Pick an answer to see why it is right or wrong.
Remember these three
- Parts in a chain multiply their uptimes, so downtime piles up; spares side by side cancel it, unless they share something hidden.
- Each extra nine is ten times less downtime: 43.2 minutes a month at 99.9%, 4.32 at 99.99%.
- Put spares in separate zones, list every shared part, and test failover before you promise.
Questions people ask
- What is high availability?
- High availability means a system keeps answering even when some parts fail. It is built with spares in separate places, such as two availability zones.
- What is a single point of failure?
- A single point of failure is one part with no spare, so if it stops, the whole system stops. A lone database, message broker or DNS provider is a common example.
- What does 99.99 uptime mean?
- It means the system may be down for about 4.3 minutes in a 30-day month: 0.01% of 43,200 minutes. Each extra nine allows ten times less downtime.