Tuesday, January 20, 2026

Load Balancers in System Design

When building scalable and reliable systems, one of the most critical components is the load balancer. Its job is simple yet powerful: distribute incoming network traffic across multiple servers so that no single server becomes overwhelmed. This ensures smooth performance, high availability, and a better user experience.

🔑 Key Functions of a Load Balancer

  • Traffic Distribution: Spreads requests evenly across servers.

  • Redundancy & Reliability: Keeps services available even if one server fails.

  • Scalability: Makes it easy to add or remove servers as demand changes.

  • Health Monitoring: Continuously checks server status to avoid routing traffic to unhealthy nodes.

  • Session Persistence: Ensures a user’s session stays on the same server when needed.

  • SSL Termination: Offloads encryption/decryption tasks from backend servers.


🛠️ Types of Load Balancers

  • Hardware Load Balancers 
    Physical devices dedicated to balancing traffic. Often used in enterprise setups.

  •  Software Load Balancers  
    Applications running on standard hardware. Flexible and cost‑effective.

  • Cloud‑Based Load Balancers
    Services offered by cloud providers (AWS ELB, Azure Load Balancer, GCP Load Balancing) that scale automatically and integrate seamlessly with cloud infrastructure.


⚙️ Common Load Balancing Algorithms

  • Round Robin: Sequentially distributes requests across servers.

  • Least Connections: Routes traffic to the server with the fewest active connections.

  • IP Hash: Uses the client’s IP address to determine which server handles the request.

  • Weighted Round Robin: Assigns more requests to servers with higher capacity.


🌐 How Requests Flow Through a Load Balancer

  • Client Request: A user sends a request to the application’s public IP or domain.

  • DNS Resolution: The domain name system translates the domain into the load balancer’s IP.

  • Traffic Reception: The load balancer receives the request.

  • Health Check: It verifies which backend servers are healthy and available.

  • Algorithm Selection: Based on the chosen algorithm (e.g., round robin), it decides where to send the request.

  • Request Forwarding: The request is passed to the selected backend server.

  • Server Processing: The server handles the request and generates a response.

  • Response Return: The server sends the response back to the load balancer.

  • Client Response: Finally, the load balancer forwards the response to the client.

System design diagram illustrating client requests routed through DNS to a load balancer, which forwards traffic to healthy backend servers using algorithms like round robin or least connections, then returns responses to the client.
Diagram showing how a load balancer distributes client requests across backend servers for reliability and scalability.

NOTE: While sending response back, Load Balancer does not use DNS since IP of client is already known.

🚀 Why Load Balancers Matter

Without load balancers, systems risk downtime, bottlenecks, and poor user experience. By intelligently distributing traffic, they provide the foundation for scalable, resilient, and high‑performance applications.

✅ Pros of Using Load Balancers

  • Improved Reliability: If one server fails, traffic is rerouted to healthy servers.

  • Scalability: Easily add or remove servers to handle changing traffic loads.

  • Optimized Performance: Distributes requests to avoid bottlenecks and reduce latency.

  • Security Features: SSL termination and protection against DDoS attacks.

  • Session Persistence: Maintains user sessions across requests when needed.

⚠️ Cons of Using Load Balancers

  • Added Complexity: Requires configuration, monitoring, and maintenance.

  • Cost: Hardware load balancers and cloud services can be expensive.

  • Single Point of Failure: If not properly configured, the load balancer itself can become a bottleneck.

  • Latency Overhead: Adds a small delay due to routing and health checks.


🧠 Conclusion

Load balancers are a cornerstone of modern system design. They ensure that applications remain resilient, scalable, and performant under varying loads. Whether you're deploying a small web app or architecting a global-scale platform, understanding how load balancers work — and choosing the right type and algorithm — is essential for building robust infrastructure.

2 comments:

Data Partitioning in System Design

Data Partitioning Techniques: Making Databases Scale Better As applications grow and data explodes, databases can become bottlenecks. Querie...