Every component fails eventually: disks, nodes, network links, entire data centers. A resilient architecture accepts this and asks a narrower question. When a part fails, does the system keep doing its job?
Think in failure domains
A failure domain is the set of components that fail together. Two servers on the same power circuit share a domain. Spreading replicas across domains, such as separate zones, means one outage removes capacity rather than service.
Redundancy only helps if the system can use it automatically. Health checks, load balancers, and replicated data turn spare capacity into real availability.
A backup you have never restored is only a hope.
Recovery is a practised skill
- Define recovery targets: how much data you can lose, and how long you can be down.
- Test restores from backup on a schedule, not only after an incident.
- Run small, planned failure drills and record what you learn.
Resilience is less about any single tool and more about habits. Systems that are tested against failure regularly tend to handle the real thing calmly.