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.
Presença
| Medida | Valor |
|---|---|
| Aplicações no parque que eu atendo | 319 |
| Integrações mapeadas entre elas | ~3.200 |
| Áreas de negócio com código meu | 26 |
| Repositórios de middleware, ETL e orquestração | 17 |
| Resiliência com Polly | 6% dos repositórios |
O parque tem ERP, CRM, plataforma de atendimento, adquirentes de cartão, antifraude, plataforma de marketing, sistema de assistência técnica de fabricante e dezenas de serviços internos. Nenhum deles fala o protocolo do outro.
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
Decisão que eu defendo
Um tradutor por plataforma, não um barramento genérico. Barramento único parece economia e vira gargalo: todo time espera a fila de um time, e a incompatibilidade de uma plataforma contamina o modelo comum. Um tradutor dedicado é mais código e menos acoplamento.
Integrações que construí
Adquirentes de cartão e meios de pagamento (Cielo, Braspag, Pix, boleto, voucher, carteira digital) · antifraude (ClearSale) · ERP (SAP) · plataforma de atendimento (Zendesk) · marketing e CRM (Emarsys, Oracle Responsys, Oracle Service Cloud) · assistência técnica de fabricante (Apple GSX, Trade In, DEP) · birôs de crédito · Correios · geolocalização de IP
Onde apliquei
Pagamentos e antifraude · Integrações corporativas · Assistência técnica · Marketing e CRM · Atendimento · Logística reversa e devoluções
O que eu ainda não fiz
Meu padrão de integração é predominantemente síncrono sobre HTTP mais job agendado. Não construí arquitetura orientada a eventos com broker central em produção: mensageria não aparece em nenhum dos meus repositórios, e event sourcing em nenhum. É a lacuna que eu escolheria fechar primeiro.
Ver também
Índice de tecnologias · Backend .NET · Documentação e mapeamento de sistemas