Skip to content
InfiQ glossary · Reference sheetReliability & scale

High Availability(HA)

Designing a service to stay up through component failures, using redundancy and no single points of failure, measured as an uptime target such as 99.9%.

Properties

Term
High Availability
Abbreviation
HA
Level
Foundation
Audience
Developers, Business owners
Reviewed
Also called
Uptime · Five nines · HA architecture

01 · Definition

What is high availability?

High availability (HA) is the practice of designing a system so it keeps serving customers when individual parts fail: a server crashes, a disk dies, a zone loses power, a deploy goes wrong. It is achieved with redundancy (more than one of everything that matters), automatic detection and failover, and the removal of single points of failure, the components whose loss takes everything down.

Availability is expressed as the share of time, or of requests, that a service works, usually in "nines". 99% allows about 7.3 hours of downtime in an average month; 99.9% about 43.8 minutes; 99.95% about 22 minutes; 99.99% about 4.4 minutes; 99.999% about 26 seconds. Each extra nine costs roughly an order of magnitude more effort, because the failures left to remove are rarer, stranger and more correlated.

Two rules of thumb govern the arithmetic. Components in series multiply: if a webhook path needs a load balancer, an app tier and a database, each 99.95%, the path is about 99.85% at best. Copies in parallel combine: two independent instances of a 99% service give 99.99%, because both must fail at once. That word "independent" matters, since copies in the same zone, on the same release or behind the same config switch fail together.

HA is often confused with its neighbours. Disaster recovery (DR) covers losing a whole region or data store, with backups and RPO and RTO targets. Fault tolerance is the stricter goal of no visible disruption at all. A Service Level Objective (SLO) is the target you hold yourself to, HA is the engineering that meets it, and the error budget is the downtime the target leaves you to spend. For WhatsApp, your sending path can never be more available than Meta's Cloud API, but your intake can be: requests accepted and queued during a Meta incident are sent when it recovers.

Key takeaways

  • High availability (HA) keeps a service running through component failures by removing single points of failure and adding redundancy.
  • Each extra nine cuts allowed downtime tenfold: 99.9% allows about 43.8 minutes a month, 99.99% about 4.4 minutes.
  • Dependencies in series multiply: two 99.9% components in a chain give about 99.8%, below either one.
  • Redundant copies only help when their failures are independent: different zones, hardware and deploy timing.
  • HA survives component and zone failures; disaster recovery plans for losing a whole region or data store.

See InfiQ pricing

02 · Specifications

High availability: key facts and limits

99%About 7.3 h down per month (3.65 days a year)
99.9%About 43.8 min per month (8.8 h a year)
99.95%About 21.9 min per month
99.99%About 4.4 min per month (52.6 min a year)
99.999%About 26 s per month
In seriesMultiply: 99.9% x 99.9% is about 99.8%
In parallelTwo independent 99% copies give 99.99%

03 · Rationale

Why does high availability matter?

Customers judge a WhatsApp integration by the moments it fails them: the OTP that never came during checkout, the order update missing on sale day, the support chat that went unanswered. Downtime also costs directly, in abandoned carts, repeat calls and agent overtime. HA design is how a business decides, deliberately, how much downtime it can accept and pays only for the nines it needs, instead of discovering its real availability during the year's biggest campaign.

04 · Operation

How does high availability work?

  1. Set the target per journey

    Decide what each journey needs (OTP sends might need 99.95%, campaign analytics 99.5%) and turn it into allowed downtime per month so the cost of each nine is visible.

  2. Find and remove single points of failure

    Walk the request path end to end, from DNS and load balancer to app instances, queue, database, secrets and the webhook callback URL, and make sure no single item can take it all down.

  3. Run redundant copies in different zones

    Use horizontal scaling to keep at least two stateless instances per tier across availability zones, with load balancing and health check probes in front, and a replicated database with automatic failover.

  4. Take slow dependencies off the critical path

    Put a durable queue between intake and sending, and move CRM, analytics and AI calls out of the webhook path, so one slow dependency cannot pull your availability down to its own.

  5. Prove it

    Measure availability from the customer's side with SLIs and synthetic checks, run failover drills, and make deploys safe with rolling or canary releases, since deploys cause many outages.

05 · Code samples

High availability in code

MINUTES_PER_MONTH = 365.25 / 12 * 24 * 60 # 43,830 in an average month
def downtime_minutes(availability: float) -> float:
return (1 - availability) * MINUTES_PER_MONTH
def serial(*parts: float) -> float:
"""Every part must be up: availabilities multiply."""
out = 1.0
for a in parts:
out *= a
return out
def parallel(a: float, copies: int) -> float:
"""Any one copy is enough (assumes independent failures)."""
return 1 - (1 - a) ** copies
for target in (0.99, 0.999, 0.9999):
print(f"{target:.2%}: {downtime_minutes(target):.1f} min/month")
# 99.00%: 438.3 min/month
# 99.90%: 43.8 min/month
# 99.99%: 4.4 min/month
app_tier = parallel(0.99, 2) # two instances in two zones -> 0.9999
print(f"{serial(app_tier, 0.9995, 0.9995):.4%}") # x load balancer x database
# 99.8900%: the shared tiers, not the app, now set the ceiling

Redundancy lifts a tier; anything left in series caps the whole path.

06Playground

A working model of HA. Use its controls to replay it step by step.

Climb the nines, one design change at a time

6 / 6
  1. Tier 1: 99% (below the current tier)≈7.3 h down a month
  2. Tier 2: 99.5% (below the current tier)≈3.6 h a month
  3. Tier 3: 99.9% (below the current tier)≈43.8 min a month
  4. Tier 4: 99.95% (below the current tier)≈21.9 min a month
  5. Tier 5: 99.99% (current)≈4.4 min a month
  6. Tier 6: 99.999% (not reached)≈26 s a month
Move 6 of 6Climbs a tier

Tier 5 · 99.99%

≈4.4 min a month

Why: Last single points removed, failover drilled quarterly, canary deploys with automatic rollback.

Four nines. No single points of failure, automatic failover rehearsed regularly, quick rollback.

Each tier is an availability target with the downtime it allows in an average month. Follow an illustrative backend as redundancy lifts it and a new serial dependency drags it back down.

Move 6 of 6: climbs to tier 5, 99.99% (≈4.4 min a month). Last single points removed, failover drilled quarterly, canary deploys with automatic rollback.

07 · Worked example: From one server to four nines in Indore

Example: From one server to four nines in Indore

An Indore insurance broker started with one virtual machine running its API, webhook receiver and database; one disk failure cost a whole afternoon of policy-renewal reminders. The rebuild spread three receiver instances across zones behind a load balancer, moved to a managed database with a standby, and put a queue in front of sending. Measured availability climbed toward 99.95%, then fell back toward 99.5% when a synchronous call to a CRM rated 99.5% was added to the webhook path. Moving that call behind the queue restored it, and later failover drills and canary deploys pushed the intake path to 99.99% over a quarter.

08 · Cautions

Common mistakes with high availability

  • Redundancy that fails together

    Two instances in the same zone, on the same release, reading the same bad config, are one instance with extra cost. Spread copies across zones, roll deploys gradually and stage config changes.

  • Forgetting the serial chain

    Every synchronous dependency in the request path multiplies in. A CRM call inside the webhook handler caps your availability at the CRM's. Move non-essential calls behind a queue.

  • Measuring servers instead of customers

    All instances "up" while sends fail on an expired token is still an outage. Measure availability as successful customer journeys, with SLIs and synthetic checks, not host uptime.

  • Promising more nines than your dependencies

    You cannot offer 99.99% delivery on top of an upstream with less. Commit to what you control, such as accepting and queueing requests, and state dependency exclusions plainly.

  • Untested failover

    Standby databases and backup zones that have never taken traffic usually fail when they are first needed. Drill failovers on a schedule and time them.

09 · Questions and answers

HA FAQs

How much downtime is 99.9% uptime?
About 43.8 minutes a month, or roughly 8.8 hours a year. By comparison 99.99% allows about 4.4 minutes a month and 99% about 7.3 hours, based on an average month of 30.4 days.
What is the difference between high availability and disaster recovery?
High availability keeps a service running through component and zone failures, usually automatically and within seconds. Disaster recovery restores service after losing a whole region or data store, using backups and runbooks, with RPO and RTO targets.
Is 99.99% availability worth it for a WhatsApp integration?
Sometimes, for the intake and OTP paths, rarely for everything. Four nines means under five minutes of downtime a month, which needs multi-zone everything and rehearsed failover; many teams target 99.9% to 99.95% and queue to absorb the rest.
What is a single point of failure?
Any one component whose failure takes the whole service down. Common ones are a single database, one NAT gateway, a webhook URL pointing at one server's IP, and a secret only one person can rotate.
Can my WhatsApp service be more available than Meta's Cloud API?
Your sending path cannot, but your intake can. If your API accepts and queues requests while Meta has an incident, customers' requests are not lost and messages go out when the Cloud API recovers, within their useful life.

10 · Recommended practice

Best practices for high availability

  • Price each nine before committing to it; 99.9% is enough for many journeys.
  • Treat deploys as the most common outage cause: canary releases and quick rollback buy more uptime than extra servers.
  • Keep the webhook receiver tiny and stateless, so it is the easiest thing in your stack to make highly available.
  • Publish a status page so customers can tell an incident from a problem on their side.

Put HA to work

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.