Traditional web applications can scale out and handle user loads using a load balancer. A load balancer can be configured to route the user requests to the next available server. Various algorithms are there to route the user requests, such as by busyness, round robin, and so on.
The following diagram depicts the traditional web application topology with a load balancer. The user requests are intercepted by a router/load balancer, the balancer knows which web server can handle the user request, and it routes the user to that server. The user loads are evenly distributed across the cluster nodes, so if you add more servers, then the cluster can handle more user requests:
However, this introduces a new problem for stateful applications that store web sessions. The user sessions are stored in a web/app server, so the Load Balancer must ensure that requests...