MG-8: a primeira divergência real da migração
290 casos verdes no Firebase. Cobertura com o id em 281 de 420 (66%). Entram 30
casos de paridade de fluxo — criação, regras, convite, papel, saída e ciclo de
vida — com o id de origem preservado.
CV-4-01: quem saía do bolão continuava no ranking
No NestJS o ranking era somado na leitura a partir de quem estava ativo, então
sair tirava a pessoa da lista na hora. No Firestore ele é agregado materializado,
e a classificação só era reescrita na apuração — quem saía continuava aparecendo
até o próximo jogo terminar, que pode ser semana que vem ou nunca, porque bolão
encerrado não tem próximo jogo.
Eram dois defeitos empilhados, e o segundo é o que dá o susto: a mudança de
vínculo não disparava recálculo, e o recálculo não apagava a linha de quem saiu —
ele reescrevia a de cada ativo, e o que não é reescrito fica. Agregado
materializado só está correto quando alguém cuida do que sobra.
É o tipo de coisa que a migração introduz sem avisar: a regra não mudou, o lugar
mudou, e o lugar novo tem uma propriedade que o antigo não tinha — memória.
Duas armadilhas de cenário viraram regra do arquivo
Convidar depois do apito é recusado, corretamente. Então bolão com jogo já
começado e convidado dentro precisa ser montado na ordem da vida real: entra todo
mundo, e depois o jogo começa. E cada caso ganhou o seu próprio campeonato, porque
o calendário é global e sobrevive ao bolão — a mesma lição de 07/08, agora
estrutural em vez de anotada.
Co-Authored-By:
Claude Opus 5 (1M context) <noreply@anthropic.com>
parent
b595b538
Please register or sign in to comment