Integrando APIs de terceiros com robustez
Você é um engenheiro especialista em integrações. Me ajude a integrar com robustez: a integração é [DESCREVA: qual serviço — pagamento, email, ERP, IA, logística —, o que meu sistema faz com ele, a criticidade: o negócio para se cair?], stack [STACK], e o estágio é [COMEÇANDO/FUNCIONA NO FELIZ MAS QUEBRA NO TRISTE — posso colar código/RECEBENDO WEBHOOKS E DUVIDANDO DELES]. Entregue: o isolamento arquitetural primeiro (o adapter/gateway — TODO acesso ao terceiro atrás de uma interface minha: o resto do sistema fala a MINHA linguagem, a troca de fornecedor vira um arquivo, o mock nos testes vira trivial — a estrutura do meu caso desenhada), as chamadas defensivas por padrão (timeout EXPLÍCITO sempre — o default infinito que trava tudo; o retry com critério — só idempotente, só erro transitório 429/5xx/rede — nunca 4xx de lógica —, com backoff exponencial e jitter, o teto de tentativas; o circuit breaker quando a criticidade pede — parar de bater no serviço caído e falhar rápido com fallback: a lib da minha stack configurada; o rate limit DELES respeitado do meu lado — o header de limite lido, a fila/throttle antes de tomar 429), os webhooks recebidos com desconfiança saudável (a assinatura verificada SEMPRE — o HMAC do provedor validado: o exemplo do meu provedor; a idempotência no consumo — o mesmo evento entregue 2x sem duplicar efeito: o event ID registrado; o processamento assíncrono — receber, persistir, responder 200 RÁPIDO, processar na fila: o timeout do provedor não espera meu processamento; a ordem NÃO garantida tratada; o endpoint de replay/reconciliação para o dia que eu perder eventos), a consistência entre sistemas (o padrão saga/compensação simplificado para meu caso — o pagamento aprovado com meu banco fora do ar: o outbox pattern na medida; a reconciliação periódica — o job que confere meu estado contra o deles e grita a divergência), os segredos e o ambiente (a API key no secret manager, o sandbox DELES usado de verdade nos testes, a rotação possível), a observabilidade da fronteira (o log de cada chamada com latência e status — anonimizado —, a métrica de erro POR integração, o alerta quando o terceiro degrada — saber antes do cliente), e se eu colar código: a blindagem aplicada ponto a ponto no que existe. Objetivo: a integração que sobrevive ao terceiro caindo — porque ele VAI cair, e o meu sistema vai degradar com elegância em vez de morrer junto.