Single Points of Failure & Resilience
Identifying SPOFs in centralized components and the standard toolkit for removing them: redundancy, replication, failover, partitioning, and backups.
A Single Point of Failure (SPOF) is any component whose failure takes down the entire system. If one box dying means your service dies, that box is an SPOF.
Where SPOFs Hide
- Centralized databases — one DB instance serves everything.
- Coordinators and proxies — components handling routing, service discovery, or job assignment are especially prone: everything flows through them by design.
- Single load balancer — ironic but common; the component meant to add resilience becomes the choke point.
The Removal Toolkit
| Technique | What it does |
|---|---|
| Redundancy | Run multiple instances of every service; health-check them |
| Replication | Duplicate data across independent machines |
| Failover | Automatically switch to a standby on failure (e.g. promote a DB slave to master) |
| Horizontal scaling | More nodes = no single node is load-bearing |
| Partitioning | Spread load/data across systems so failures are isolated |
Backups
Backups don’t prevent failure — they bound its damage:
- Keep regular backups of all stateful stores.
- A backup turns “total data loss” into “restore from last night”.
- Pair with redundancy so recovery is fast, not just possible.
The Dependency Graph
Map what depends on what. With enough redundancy the dependency graph becomes flexible — traffic reroutes around failed nodes instead of through them. Audit it regularly: new features quietly introduce new SPOFs.
Limits: CAP
You can’t remove every failure mode:
- CAP theorem constrains what’s achievable during partitions — you trade consistency against availability.
- Strong consistency often requires coordination (quorums, leader election), which itself can reduce availability.
Resilience engineering is about choosing which failures you can tolerate, then making those failures boring.
Part of the System Design Fundamentals series.
Related Notes
CDNs: Content Delivery Networks
How globally distributed edge servers cut latency for static content, the cache hit/miss flow, and invalidation strategies.
Load Balancing & Consistent Hashing
How load balancers distribute traffic across servers, why naive hashing breaks on scale events, and how consistent hashing with virtual nodes solves it.
CAP Theorem: Understanding the Trade-offs
A deep dive into the CAP theorem, its implications for distributed systems, and how to choose the right trade-offs for your system.