load balancer?
A load balancer is a device or software that distributes network or application traffic across a cluster of servers. A load balancer acts as a “traffic cop” sitting in between the client and the server accepting incoming network and application traffic and routing request across multiple backend servers capable of fulfilling those requests. By balancing requests across multiple servers, a load balancer reduces individual server load and prevents any one application server from becoming a single point of failure.

Load balancer features:
- If a single server goes down, the load balancer removes that server from server group and redirects traffic to the remaining online servers
- When a new server is added to the server group, the load balancer automatically starts to send requests to it.
- Distributes clients request or network load efficiently across multiple servers.
- Ensure high availability and reliability by sending request only to the servers that are online.
- Provides the flexibility to add or subtract servers as demand dictates.
- Can be added at multiple layers ( application server, databases, caches etc) in the application stack
- Can dynamically add or remove servers from the group without interrupting existing connections.
While routing requests to multiple backend servers load balancer choose the server based on two factors. First, ensure that the server they choose is responding and then choose one server based on a pre-configured algorithm from the set of healthy servers.
