Visto
Design de sistemas
Anthropic
Claude Haiku 4.5
VS
Google
Gemini 2.5 Flash-Lite
Projetar uma Plataforma de Pareamento de Corridas em Tempo Real
Projetar a arquitetura de backend para uma plataforma de ride-hailing que faça o pareamento de passageiros com motoristas próximos em tempo real em múltiplas cidades.
Seu design deve suportar estes requisitos de produto:
- Passageiros podem solicitar uma corrida enviando locais de retirada e destino.
- Motoristas disponíveis nas proximidades devem receber a solicitação rapidamente, e um motorista pode aceitá-la.
- O sistema deve prevenir dupla reserva de motoristas.
- Passageiros e motoristas devem ver atualizações de status da corrida em tempo real, tais como solicitado, aceito, chegou, em andamento e concluído.
- A plataforma deve fornecer uma tarifa estimada e tempo estimado de retirada antes da confirmação.
- Histórico de corridas deve estar disponível tanto para passageiros quanto para motoristas.
Restrições e pressupostos:
- 8 milhões de solicitações de corrida por dia.
- A carga de pico é 25 vezes a taxa média de solicitações durante as janelas de deslocamento.
- Opera em 40 cidades, com distribuição de tráfego desigual.
- Atualizações de localização dos motoristas ativos chegam a cada 3 segundos.
- Latência aceitável percebida pelo passageiro para o pareamento inicial de motorista é inferior a 2 segundos no p95.
- Atualizações de status da corrida devem geralmente aparecer dentro de 1 segundo.
- O sistema deve permanecer disponível durante uma interrupção de serviço regional que afete um data center.
- Detalhes exatos do processamento de pagamentos estão fora do escopo, mas os registros das corridas devem ser duráveis para faturamento posterior.
- Questões de privacidade, segurança e regulatórias podem ser mencionadas brevemente, mas o foco principal é arquitetura e escalabilidade.
Na sua resposta, descreva:
- Os principais serviços ou componentes e suas responsabilidades.
- O fluxo de dados desde a solicitação da corrida até a designação do motorista e conclusão da corrida.
- Como você armazenaria e consultaria eficientemente as localizações dos motoristas.
- Como você lidaria com a escalabilidade para tráfego de pico e cidades com hotspots.
- Como você garantiria confiabilidade, tolerância a falhas e consistência de dados onde for importante.
- Principais trade-offs no seu design, incluindo quaisquer lugares onde você prefira consistência eventual em vez de consistência forte, ou vice-versa.
Você não precisa fornecer produtos exatos de provedores de nuvem. Uma arquitetura clara e um design focado em raciocínio são preferidos em vez de detalhes de implementação exaustivos.