Assumptions -
- There are 4 servers sitting behind a reverse proxy which acts as a load balancer
- Load Balancer is purely load balancing and sends a request to any of the 4 servers depending on their current load
- Users need to be authenticated for accessing this application, and some space should hold state of all users, as reverse-proxy is only load balancing
- Application needs to scale beyond 4 servers, say to 4000 servers.
Question -
- In a large scale multi-server system who holds state of all the users - load balancer, each server, separate server?
- Is the state of all users saved on all servers so that the load balancer can send a request to any server? How does this scale to 100m users?