Reliability & Performance

High Availability Patterns

3 min read Advanced Engineering Practices

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 B

Graceful 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.