Master the ‘Three Highs’: Availability, Throughput, and Scalability in System Design
This article explains the essential "three high" goals of system design—high availability, high throughput, and high scalability—detailing their meanings, common architectural patterns such as Hot‑Hot, Hot‑Warm, leader‑based clusters, and practical techniques like caching, async processing, and micro‑service isolation to build robust, scalable services.
High Availability
High availability means achieving a high level of uptime, often expressed as "3 nines" (99.9%) or "4 nines" (99.99%), which allows only a few seconds of downtime per day. Redundancy is required, and common patterns include:
Hot‑Hot : Two instances receive the same input and both send output downstream; the downstream system must handle duplicate data.
Hot‑Warm : Only the Hot instance sends output; if it fails, the Warm instance takes over.
Single Leader : One leader instance receives data and replicates it to followers.
Leaderless : No leader; any write is replicated to other instances, and a quorum of reads/writes ensures data validity.
High Throughput
High throughput requires the service to process a large number of requests within a time window, measured by QPS (queries per second) or TPS (transactions per second). Techniques to achieve it include adding caches to avoid slow I/O, increasing thread counts for compute‑intensive tasks (while avoiding excessive threading), identifying bottlenecks, and using asynchronous processing to isolate slow components.
High Scalability
High scalability means the system can quickly expand to accommodate more capacity (horizontal scalability) or more functionality (vertical scalability). This is typically achieved by isolating responsibilities of each service, adopting micro‑services, and employing service discovery and load balancers to route requests to appropriate instances.
System Design Interviews
System design interviews are among the toughest technical interviews, requiring candidates to analyze vague problems, propose architectures that meet the three‑high goals, and communicate their ideas effectively. Success depends on understanding requirements, constraints, and bottlenecks, and applying the strategies described above.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Programmer DD
A tinkering programmer and author of "Spring Cloud Microservices in Action"
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
