A ideia
Um baralho de 52 cartas com um desafio para cada valor. Dá para jogar num celular só, passando de mão em mão, ou em grupo, cada pessoa no seu aparelho, com todas as telas mostrando a mesma partida.
Decisões
O navegador nunca é dono do estado
A partida inteira vive no backend, em MySQL via Prisma. Cada aparelho se reconcilia com ela.
Por quê: em jogo de grupo alguém sempre bloqueia a tela, perde sinal ou recarrega a página. Como o estado não morava naquele celular, ele volta direto para a partida certa.
Backend sem estado em memória
Até o sorteio periódico de carta é um
UPDATEatômico condicional no banco. Não existe timer rodando no processo.Por quê: o processo pode reiniciar ou ter mais de uma instância sem perder nada. Se duas requisições tentam sortear ao mesmo tempo, a condição do
UPDATEgarante que só uma consegue.
