Reliability & Performance
High Availability Patterns
Design systems that survive failures and stay available for users.
Learning objectives
- Explain redundancy and failover
- Understand load balancing
- Plan for graceful degradation
Redundancy
Availability comes from removing single points of failure. If one server dies, another takes over. This redundancy can exist at every level: network, server, database, and storage.
Load balancing
A load balancer distributes traffic across healthy servers. When one server fails, traffic is routed to the survivors, and users keep working:
client -> load balancer -> server A
\-> server BGraceful degradation
Not every feature needs to be online for the system to work. Building fallbacks - such as a cached page when the database is unreachable - turns a full outage into a minor inconvenience.
Key takeaways
- Redundancy removes single points of failure.
- Load balancing distributes traffic and masks failures.
- Design for partial failures, not just total ones.