Availability Patterns: Failover & Redundancy
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.
Active-active: both regions serve live traffic and replicate to each other.
Why not just always run active-active everywhere? It sounds strictly better than active-passive.
"You should, since it means no wasted standby capacity."
"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."
Per the CAP theorem, since network partitions are inevitable, what is the real choice a distributed system faces?
Level 26: Distributed Cache exercises these consistency trade-offs directly.