Roblox hosts millions of multiplayer game sessions daily. It is planning to release a matchmaking service for game developers such that users can join a waiting queue, be grouped together by skill level, and join a new gameserver at the same time. A popular game might have 500k concurrent players, hundreds of players joining per second. A user may have skill level e.g. userId : skill (1-100) Design a service to help organize these users into groups of 16 before allocating them a new empty gameserver. A user may only queue for 1 game at a time. You may assume the following ID types exist long GameID long UserID long ServerId And the following table Table UserSkill long GameId long UserId int skill
System DesignStaff+
Design a Matchmaking Service for Multiplayer Games
Design a matchmaking service that allows users to join waiting queues, get grouped by skill level into teams of 16, and be allocated to new game servers for multiplayer sessions.
Contextos reais
Onde essa pergunta já apareceu
Use esses exemplos para entender em que contexto ela costuma cair e adaptar sua prática.
Robloxstaff_plusset. de 2025
Anexos públicos
Materiais associados
Nenhum anexo público associado a esta pergunta.
Sinais de resposta forte
Você mostra decisões explícitas, não só uma lista de componentes.
Há trade-offs claros entre simplicidade, custo, latência e consistência.
A solução fecha com gargalos, riscos e próximos passos de evolução.
O que costuma enfraquecer a resposta
Pular requisitos e ir direto para uma arquitetura decorada.
Nomear tecnologias sem explicar por que elas resolvem o problema.
Encerrar a resposta sem discutir falhas, abuso, operação ou trade-offs.
Continue a preparação com o banco completo
No app você encontra perguntas parecidas, compara empresas e aprofunda essa busca com mais filtros.