Skip to content
HLD Learn/Consistency & Availability

Availability Patterns: Failover & Redundancy

4 min read

You'll learn to

  • -Compare active-passive and active-active failover

Active-Passive Failover

One region (or replica) actively serves traffic; a standby sits idle, ready to take over if the primary fails. Simple to reason about, but wasteful (the standby's capacity sits unused most of the time), and failover itself takes time, meaning a real (if brief) outage window.

Active-Active

Multiple regions serve production traffic simultaneously, so no capacity sits idle and losing one region just means the others absorb its share. The cost is real: now two regions can both accept writes to the same data at the same time, and something has to resolve the conflict when they disagree.

Region A
Region B
Region A DB
Region B DB

Active-active: both regions serve live traffic and replicate to each other.

Region A DBRegion B DB- replicateRegion B DBRegion A DB- replicate
Interview Signal

Why not just always run active-active everywhere? It sounds strictly better than active-passive.

Weak Answer

"You should, since it means no wasted standby capacity."

Strong Answer

"It removes idle capacity, but it doesn't remove complexity: it relocates it. Active-active means two regions can accept conflicting writes to the same record within milliseconds of each other, and something has to resolve that conflict deterministically. Active-passive sidesteps that entirely since only one side ever accepts writes. I'd reach for active-active when the availability and latency win is worth taking on conflict resolution, and active-passive when the data genuinely needs one clear source of truth."

Check Yourself1 / 3

Per the CAP theorem, since network partitions are inevitable, what is the real choice a distributed system faces?

Ready to Build This?

Level 26: Distributed Cache exercises these consistency trade-offs directly.

ScaleDojo Logo
Initializing ScaleDojo