Matchmaking System Design (Mock Interview + Low-Latency Pairing)

Design a matchmaking system for online multiplayer games that matches players together based on skill level, region, latency, and other factors. The system should support millions of concurrent players and provide fair, balanced matches.

Constraints

Functional

Match into teams/games by criteria, skill rating (MMR/ELO), modes (ranked/casual/tournament), team balancing, region matching, queue with estimated wait, party matching, optional role selection

Non-functional

Match in < 30s for most, fair balanced matches, millions of concurrent, real-time queue status, high availability, accurate ratings

Scale

50M players, 5M concurrent; 10M matches/day, peak ~80/s; 100K–500K in queue; 10M rating updates/day (~120/s); ~10 GB ratings, ~10 GB/day matches (~3.6 TB/year)

Stages ahead

1Requirement Analysis
2API Design
3High-Level Design
4HLD Extensions
5Trade-offs