| Users | Changes in Protocol Needs | Design Impact |
|---|---|---|
| 100 users | Simple protocols like HTTP/1.1 suffice | Basic client-server communication, minimal overhead |
| 10,000 users | Need for persistent connections (HTTP/2, WebSocket) | Reduce latency, improve throughput, better resource use |
| 1,000,000 users | Advanced protocols with multiplexing, compression, security (HTTP/3, QUIC) | Handle high concurrency, reduce packet loss, improve speed |
| 100,000,000 users | Protocol optimization, edge computing, CDN integration | Minimize latency globally, efficient load balancing, fault tolerance |
Why understanding protocols enables design decisions in HLD - Scalability Evidence
When user count grows, the first bottleneck is often the communication protocol overhead. For example, HTTP/1.1 opens many connections causing high latency and server load. Without protocol understanding, design may ignore connection reuse or multiplexing, leading to slow response and resource exhaustion.
- Use modern protocols: Switch to HTTP/2 or HTTP/3 to enable multiplexing and reduce latency.
- Persistent connections: Keep connections alive to avoid handshake overhead.
- Compression: Use protocol-level compression to reduce data size.
- Load balancing: Distribute requests efficiently considering protocol session states.
- CDN integration: Use edge servers to reduce distance and protocol round-trips.
- Protocol tuning: Adjust timeouts, window sizes, and retransmission strategies.
- At 1,000 QPS with HTTP/1.1, many TCP connections cause CPU and memory overhead.
- Switching to HTTP/2 reduces connections by multiplexing, lowering server load by ~50%.
- Bandwidth savings from compression can reduce data transfer by 30-50%, saving network costs.
- Using CDN reduces bandwidth on origin servers, saving up to 70% of outgoing traffic.
- Protocol inefficiencies cause latency increases that can reduce user engagement, impacting revenue.
Start by explaining the current protocol and its limitations at scale. Then describe how protocol features affect latency, throughput, and resource use. Next, propose protocol upgrades or optimizations and explain their impact on system components. Finally, discuss trade-offs and fallback plans if protocol changes are not feasible.
Your database handles 1000 QPS. Traffic grows 10x. What do you do first?
Answer: Before scaling the database, check if protocol inefficiencies cause extra load. For example, if many short-lived connections cause overhead, switch to persistent connections or a protocol with multiplexing to reduce load. This can delay or reduce the need for costly database scaling.