tezvyn:

High Availability: Designing Systems That Don't Go Down

AI-drafted, machine-checkedSource: Wikipedia: High availabilityintermediate

High Availability (HA) means designing systems to survive failures by having redundant components ready to take over instantly. It's essential for services like payment gateways where downtime costs money and user trust.

WHY IT EXISTS Systems fail. Hardware breaks, software has bugs, and networks become unreliable. High Availability was developed to ensure that when a single component fails, the entire system doesn't go down with it. It protects business operations, revenue, and user trust from being impacted by common, isolated failures.

THE MENTAL MODEL Think of a hospital's power supply. It's connected to the main city grid, but it also has a backup generator that kicks in automatically if the grid fails. High Availability is the engineering equivalent: designing systems with redundant components and automatic failover so that the failure of one part is invisible to the user. The goal is to eliminate single points of failure.

HOW IT WORKS HA is achieved through three main principles. First, redundancy: having more than one of everything critical, such as servers, databases, or network paths. Second, monitoring: constantly checking the health of all components to detect failures as they happen. Third, automatic failover: if a primary component is detected as unhealthy, traffic is automatically rerouted to a standby, redundant component without human intervention. This often involves load balancers that distribute traffic and can stop sending requests to a failed server, or database clusters where a replica is promoted to primary.

WHEN TO USE IT Use HA for any service where uptime is critical and directly tied to business operations. This includes customer-facing APIs, e-commerce platforms, payment processing systems, and core databases. It is for services where even a few minutes of downtime results in significant financial loss or erosion of customer confidence.

WHEN NOT TO USE IT Avoid the complexity and cost of HA for non-critical systems. Batch processing jobs, internal analytics dashboards, or development environments often don't need it. If a system can tolerate several minutes or hours of downtime without major business impact, the cost of implementing and maintaining a full HA setup is likely not justified. HA is not free; it adds significant architectural complexity and infrastructure cost.

ONE CANONICAL EXAMPLE A common HA setup for a web application involves two or more web servers behind a load balancer. The load balancer constantly sends health-check pings to both servers. If one server fails its health check, the load balancer immediately stops sending traffic to it and directs all new requests to the remaining healthy server. To the end-user, the service appears uninterrupted. This eliminates the individual web server as a single point of failure.

Read the original → en.wikipedia.org

Get five bites like this every day.

Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.