Tecnologias

Integrações e sistemas distribuídos

nível aplicado-em-producao

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.

Pablo Mickael Quevedo Senior Software Engineer · Novo Hamburgo, RS