100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Architecture

Redundancy and Failover

Techniques for eliminating single points of failure by duplicating critical components and automatically routing traffic away from failed instances to healthy ones.

Reliability & ResilienceIntermediate9 min readJul 9, 2026
Analogies

Redundancy and Failover

Redundancy is the practice of duplicating critical components — servers, databases, network paths, even entire data centers — so that the failure of any single one does not take down the system. Failover is the mechanism that detects a failed component and automatically redirects traffic or responsibility to a healthy redundant copy. Together they are the primary tools for eliminating single points of failure (SPOFs): any component that exists in only one copy is, by definition, a place where a single hardware fault, software crash, or network partition can cause a full outage. High availability is achieved not by making individual components unbreakable, but by assuming they will break and ensuring the system as a whole keeps functioning when they do.

🏏

Cricket analogy: A team carrying only one specialist wicketkeeper is a single point of failure, if he's injured mid-tour there's no backup; smart squads carry a reserve keeper so the team keeps functioning even when the primary breaks down.

Active-Passive vs. Active-Active

In an active-passive (or active-standby) setup, one instance handles all traffic while one or more standby replicas stay synchronized but idle, ready to take over if the primary fails. This is simpler to reason about — there is only ever one writer — but it wastes standby capacity and the failover itself takes time (detecting the failure, promoting the standby, updating routing), during which the system is degraded or unavailable. In an active-active setup, multiple instances serve traffic simultaneously, so capacity is fully utilized and the loss of one instance simply means the others absorb its share of load with no explicit failover step. Active-active is harder to build correctly, especially for stateful systems, because concurrent writers must agree on ordering and conflicts.

🏏

Cricket analogy: A team keeping its star all-rounder on the bench as cover while one specialist bats and one bowls, active-passive, wastes his versatility compared to a genuine all-rounder actively contributing with both bat and ball simultaneously, active-active, though coordinating two players both setting the tempo is harder.

Detecting Failure: Health Checks

Failover depends entirely on accurate failure detection. Health checks are periodic probes — a load balancer or orchestrator pings each instance's health endpoint, or checks TCP connectivity, on a fixed interval. An instance is marked unhealthy after it fails a threshold number of consecutive checks (to avoid flapping on a single transient blip) and healthy again only after passing a similar threshold of successful checks. The interval and threshold values encode a direct tradeoff: aggressive checking detects failures faster but risks false positives from momentary slowness, while conservative checking is more stable but leaves traffic flowing to a dead instance for longer.

🏏

Cricket analogy: An umpire deciding a bowler has overstepped requires seeing it on multiple deliveries via the front-foot no-ball camera before signaling, avoiding a false call on one blurry frame, but waiting too many deliveries to confirm lets an illegal action continue unchecked.

text
Active-passive failover across two regions

              [DNS / Global Load Balancer]
                     |
         health check every 10s
                     |
     +---------------+----------------+
     |                                |
[Region A - PRIMARY]           [Region B - STANDBY]
  App servers (serving)          App servers (idle/warm)
  DB primary  <--replication-->  DB replica

On 3 consecutive failed health checks against Region A:
  1. Global LB stops routing new traffic to Region A
  2. Orchestrator promotes Region B's DB replica to primary
  3. DNS / LB updates to route all traffic to Region B
  4. Region A is repaired and rejoins as the new standby

AWS's multi-AZ RDS deployments keep a synchronously replicated standby database in a separate Availability Zone; on primary failure, AWS automatically promotes the standby and updates the DNS CNAME the application uses, typically completing failover in under two minutes without requiring application-level changes. This illustrates active-passive failover at the managed-database layer.

A subtle but serious risk in failover systems is split-brain: if a network partition makes the primary and standby unable to communicate, each may independently conclude the other is dead and both start accepting writes as 'the' primary. Without a mechanism to guarantee only one active writer — such as a quorum-based leader election or a fencing token — split-brain can cause silent data divergence and lost writes.

Redundancy Beyond Servers

Redundancy applies at every layer, not just application servers: redundant network paths avoid a single switch or ISP link taking down connectivity; redundant power supplies and generators keep a data center running through a utility outage; redundant DNS providers prevent a single DNS outage from making a service unreachable even if the origin servers are healthy. Designing for redundancy means asking, for every component in the request path, 'what happens if this one thing disappears right now' — and ensuring the answer is never 'total outage.'

🏏

Cricket analogy: A tournament asks, for every dependency, 'what happens if this disappears right now,' backup floodlights for a power cut, a reserve pitch for a waterlogged one, and a secondary broadcast link so a single cable cut doesn't take the whole telecast off air.

  • Redundancy duplicates critical components; failover automatically shifts traffic away from a failed instance to a healthy one.
  • Active-passive keeps a standby idle for simplicity but wastes capacity and incurs failover delay; active-active uses all instances but is harder to build for stateful systems.
  • Health checks with consecutive-failure and consecutive-success thresholds balance fast detection against false-positive flapping.
  • Split-brain occurs when a network partition causes two nodes to both believe they are the active primary, risking data divergence.
  • Quorum-based leader election or fencing tokens are needed to guarantee only one active writer during a partition.
  • Redundancy must be applied at every layer of the stack — power, network, DNS, compute, storage — not just application servers.

Practice what you learned

Was this page helpful?

Topics covered

#Architecture#SystemDesignStudyNotes#SoftwareEngineering#RedundancyAndFailover#Redundancy#Failover#Active#Passive#StudyNotes#SkillVeris