Integrações e sistemas distribuídos
Fazer sistemas que não foram feitos um para o outro conversarem, e continuarem conversando quando um deles muda. É o núcleo do meu trabalho: quase nenhum dos serviços que eu mantenho resolve o problema sozinho.
Do outro lado da linha tem de tudo. ERP, CRM, plataforma de atendimento, adquirente de cartão, antifraude, marketing, marketplace, transportadora, birô de crédito. Nenhum fala o protocolo do outro, e boa parte do que eu escrevo é o meio de campo entre eles.
O que se aprende fazendo isso não é variedade de tecnologia, é variedade de modo de falhar. Banco responde diferente de marketplace, que responde diferente de fabricante. Cada um tem o seu jeito de ficar fora do ar, o seu limite de requisição e a sua interpretação de “já processei isso”. E não são integrações de currículo: são contratos que já quebraram, mudaram sem avisar ou responderam diferente do documentado enquanto eu era o responsável.
O que eu faço
- Desenhar contrato de integração entre sistemas de donos diferentes, incluindo o que acontece quando o outro lado cai
- Escrever middleware que traduz modelo de domínio entre plataformas com vocabulário incompatível
- Construir ETL de carga e reconciliação entre origem e destino que discordam
- Tratar idempotência, reprocessamento e ordem de chegada: o pedido que chega duas vezes, o callback que chega antes da confirmação
- Publicar SDK interno para que quem consome meu serviço não reescreva o cliente HTTP
- Decidir entre chamada síncrona, evento de domínio e job agendado pela característica do acoplamento
A troca que eu faço sem pensar muito
Um tradutor dedicado por plataforma, em vez de um barramento genérico. É mais código e menos acoplamento, e o raciocínio inteiro está em Como eu trabalho.
Onde apliquei
Pagamentos e antifraude · Reporte ao fabricante · Experiência · Atendimento
O que eu ainda não fiz
Meu padrão de integração é predominantemente síncrono sobre HTTP mais job agendado. Nunca construí arquitetura orientada a eventos com broker central em produção, nem apliquei event sourcing. É a lacuna que eu escolheria fechar primeiro.