FIFA Queue
Aplicativo para times competitivos encontrarem partidas de forma justa e previsível — com uma fila de matchmaking cuja autoridade fica sempre no servidor, nunca no cliente.
Visão do produto
Times formam grupos, entram numa fila de busca por adversário e recebem uma partida assim que houver um par compatível disponível. O app cobre todo o ciclo: criação de time e convites, entrada na fila, formação da partida e notificação em tempo real.
Desafio arquitetural — matchmaking confiável
O ponto central do FIFA Queue é garantir que o pareamento de partidas seja consistente mesmo com múltiplos clientes agindo ao mesmo tempo. Toda decisão de matchmaking acontece no servidor (Postgres + Edge Functions), nunca no app: fila FIFO, lock por time — cada time só pode ter uma busca ativa por vez — e um padrão de transactional outbox para garantir que eventos de partida e notificações sejam entregues de forma consistente, mesmo em caso de falha parcial.
Principais recursos
Stack técnica
Mobile
- Flutter
- Dart
Backend
- Supabase
- PostgreSQL
- Edge Functions
- Row Level Security
- Realtime
Mensageria
- FCM
- Transactional outbox