Pular para o conteúdo
/thiago.lu

Piras

#01

26 jul 2026

← Todas as edições

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.