When a system has multiple components, overall availability depends on how they are connected. Naively combining component availability gives misleading results.
Components in sequence multiply their availability together (making total availability worse), while components in parallel multiply their unavailability together (making total availability dramatically better).
- Sequence formula:
Avail(Total) = Avail(A) × Avail(B). Two 99.9% components in series yield 99.8% — worse than either alone. - Parallel formula:
Avail(Total) = 1 - (1 - Avail(A)) × (1 - Avail(B)). Two 99.9% components in parallel yield 99.9999% — better than either alone. - Parallel systems only fail if both (or all) redundant components fail simultaneously.
- Sequential components multiply availability — total is always worse than the worst component
- Parallel components multiply unavailability — total is always better than the best component
- Fundamental principle underlying all reliability engineering and redundancy design
- Builds into: Availability Nines — the formula behind nines calculations
- Related: Active-Passive Failover — parallel arrangement of servers for failover
- Related: Active-Active Failover — parallel arrangement for load sharing and redundancy
- Related: Horizontal Scaling — adding parallel nodes improves overall system availability
- Components are rarely perfectly independent — shared power supplies, network links, or data centers create common-mode failures that violate the parallel model
- The parallel formula assumes instant failover, but real failover has non-zero downtime that reduces effective availability
- Very long dependency chains (many sequential components) degrade availability drastically — a system with ten 99.9% components in series is only 99.0% available