18 de Junho de 2025
Reconciliação entre sistemas
Como comparar e corrigir divergência entre sistemas partindo do fato de que sincronismo perfeito não existe.
Andrews Ribeiro
Founder & Engineer
4 min Intermediario Sistemas
O problema
Dois sistemas deveriam contar a mesma história.
Mas, na prática:
- um recebeu evento e o outro não
- uma chamada falhou no meio
- um backfill foi interrompido
- um contrato mudou
- uma fila atrasou
E agora os estados divergem.
Muita gente reage com frase grande:
“Precisamos garantir consistência.”
Só que, nesse ponto, o problema já não é teoria.
É este:
- como detectar diferença real
- como decidir qual lado está certo
- como corrigir sem piorar a situação
Modelo mental
Pense assim:
reconciliação é o processo de comparar, explicar e corrigir divergência entre sistemas que deveriam convergir
Essa definição ajuda porque tira a conversa do teatro.
Não se trata de fingir que tudo sempre esteve sincronizado.
Se trata de admitir que divergência acontece e desenhar um jeito seguro de recuperação.
Quebrando o problema
Primeiro descubra qual diferença importa
Nem toda diferença é erro relevante.
Exemplos:
- timestamp levemente diferente pode ser ruído
- status de pagamento diferente provavelmente não é
- campo opcional ausente pode ser tolerável
- valor financeiro divergente pode ser gravíssimo
Sem essa classificação, reconciliação vira diff cego e barulho.
Defina a fonte de verdade por tipo de dado
Esse ponto precisa ficar explícito.
Perguntas úteis:
- para pagamento, quem manda?
- para cadastro, quem manda?
- para inventario, quem manda?
Se os dois lados se comportam como fonte de verdade ao mesmo tempo, a correção vira briga de estado.
Compare com identificador estavel
Reconciliar sem chave clara é pedir para errar.
Normalmente você precisa de algo como:
order_idpayment_idexternal_referencecustomer_id
Sem isso, você não sabe se está vendo o mesmo fato em dois lugares ou fatos parecidos que não deveriam ser mesclados.
Corrigir nem sempre significa sobrescrever
Dependendo do caso, a ação certa pode ser:
- reenfileirar um evento
- refazer só uma etapa
- marcar para análise manual
- reprocessar com proteção idempotente
- compensar em vez de sobrescrever
O erro comum é assumir que reconciliar significa “copiar A sobre B”.
Às vezes isso só espalha um erro antigo mais rápido.
Reconciliação boa produz aprendizado, não só limpeza
Se divergência aparece muito, o problema não é só operacional.
É estrutural.
Então reconciliação madura também pergunta:
- por que isso divergiu
- como detectar antes
- que contrato, retry ou observabilidade faltou
Sem isso, o time vira faxineiro de divergência eterna.
Exemplo simples
Imagine um sistema interno de pedidos e um ERP externo.
O pedido 123 aparece como:
paidno sistema internopendingno ERP
Plano ruim:
- forçar update no ERP e considerar encerrado
Plano melhor:
- confirmar se ambos estão olhando o mesmo
order_id - verificar qual evento ou chamada faltou
- decidir se a correção certa é reenviar evento, compensar ou intervir manualmente
- registrar a causa para não depender da mesma reconciliação sempre
Assim, a correção deixa de ser chute.
Erros comuns
- Comparar tudo sem separar ruído de divergência relevante.
- Não definir fonte de verdade.
- Corrigir sobrescrevendo estado sem entender a origem da diferença.
- Reconciliar sem identificador estável.
- Tratar reconciliação como limpeza manual eterna em vez de sinal de fragilidade sistêmica.
Como um senior pensa
Quem tem mais experiência costuma perguntar:
“Essa divergência significa que lado perdeu um fato, ou eu estou comparando coisas que não deveriam bater exatamente?”
Essa pergunta evita correções agressivas e burras.
O que o entrevistador quer ver
Em entrevista, o avaliador quer ver se você sabe lidar com mundo imperfeito sem se esconder atrás de discurso de consistência total.
Você sobe de nível quando:
- fala de diferença relevante versus ruído
- define fonte de verdade
- propõe comparação com chave estável
- escolhe correção pelo tipo de divergência, não por reflexo
Uma resposta forte costuma soar assim:
“Eu trataria reconciliação como processo: identificar a mesma entidade nos dois lados, classificar a divergência, decidir qual sistema é fonte de verdade naquele dado e corrigir com reprocessamento, compensação ou intervenção manual quando necessário.”
Reconciliar bem não é fingir que os sistemas nunca divergiram. É saber trazê-los de volta sem inventar um problema novo.
Quando a reconciliação vira rotina demais, ela deixou de ser manutenção e virou sintoma de arquitetura.
Resumo rápido
O que vale manter na cabeça
- Reconciliação existe porque sistemas reais divergem, mesmo quando o desenho gostaria que não.
- O objetivo não é provar consistência perfeita, e detectar e corrigir diferença relevante com segurança.
- Comparação, classificação da divergência e ação correta importam mais do que prometer sincronismo total.
- Reconciliar bem pede identificador estável, fonte de verdade clara e cuidado para não corrigir o que não está errado.
Checklist de pratica
Use isto ao responder
- Consigo explicar por que reconciliação aparece em integrações e migrações reais?
- Sei dizer como descobrir diferença entre dois sistemas sem confiar só em intuição?
- Consigo descrever o que é divergência relevante e o que é ruído aceitável?
- Sei responder em entrevista como corrigiria estado divergente sem criar dano novo?
Você concluiu este artigo
Compartilhar esta página
Copie o link manualmente no campo abaixo.