Piras
#01
26 jul 2026
A parede de comparação
Rodar o sistema velho e o novo lado a lado durante a migração, e comparar as respostas antes de acreditar em qualquer uma delas.
Migração de sistema costuma ser tratada como um evento: existe um sábado, uma janela, um plano de rollback e um grupo de pessoas acordadas. Funciona quando o sistema é pequeno. Quando ele não é, o evento vira o único momento em que alguém descobre o que estava errado.
A alternativa é fazer a migração deixar de ser um evento. Em vez de trocar o sistema num instante, os dois rodam juntos por um tempo, e o trabalho passa a ser comparar o que cada um responde.
Como isso funciona na prática
O sistema novo recebe o mesmo tráfego do velho, sem que a resposta dele chegue a ninguém. Cada par de respostas é guardado e comparado. Enquanto os dois divergirem, o novo não assume nada.
- O velho continua sendo a fonte de verdade durante todo o período.
- O novo processa tudo, e nada do que ele devolve é servido.
- Cada divergência vira um item para investigar, com os dois lados guardados.
O que se ganha é ordem de investigação: no dia do corte, a lista de diferenças já é conhecida e já foi decidida uma a uma.
O que conta como divergência
Aqui está a parte que dá trabalho. Duas respostas raramente são idênticas byte a byte, e quase sempre há diferença que não importa: ordem de chave num JSON, carimbo de tempo, identificador gerado, arredondamento na última casa.
igual → nada a fazer
diferente → investigar
diferente,
mas esperado → registrar a regra e parar de perguntar
A terceira linha é a que decide se a comparação sobrevive à primeira semana. Sem ela, todo mundo para de olhar o relatório no terceiro dia, porque ele tem milhares de linhas e nenhuma delas é um problema.
Uma comparação que sempre acusa diferença é uma comparação que ninguém lê.
O custo
Não é de graça. Rodar dois sistemas custa o dobro de infraestrutura durante o período, e o mecanismo de comparação é software que precisa ser escrito, mantido e depois desligado. Em migração pequena isso não se paga.
O que decide não é o tamanho do sistema, é o custo de errar: quanto vale uma resposta errada servida por três dias sem ninguém perceber.