Design: Sticky Sessions Load Balancing
Design the load balancing and session management system to support sticky sessions. Out of scope: detailed backend application logic and database design.
Functional Requirements
FR1: Maintain user session affinity to the same backend server during a session
FR2: Support at least 10,000 concurrent users
FR3: Ensure session persistence even if load balancer restarts
FR4: Handle session expiration after 30 minutes of inactivity
FR5: Support failover to another server if the original server is down
Non-Functional Requirements
NFR1: API response latency p99 under 150ms
NFR2: System availability 99.9% uptime (max 8.77 hours downtime per year)
NFR3: Session data size limited to 4KB per user
NFR4: Load balancer must handle 20,000 requests per second