architecture

Como Sistemas Modernos se Integram: APIs, Webhooks, Eventos e Filas

Um guia prático para escolher APIs, webhooks, filas e eventos conforme requisitos de tempo, acoplamento, entrega e operação.

Read in English
Sistemas independentes conectados por caminhos distintos de API, webhook, fila e comunicação por eventos

Integração de sistemas é fazer softwares que evoluem independentemente cooperarem sem fingir que redes são confiáveis ou que todos compartilham o mesmo modelo do mundo.

A tecnologia importa, mas a primeira pergunta é mais simples: quem chama precisa da resposta agora ou o trabalho pode acontecer depois?

APIs para interação imediata

Uma API síncrona é adequada quando o consumidor precisa da resposta para continuar, como consultar uma conta ou validar uma operação. O contrato deve definir entradas, saídas, autenticação, autorização, erros, timeouts e compatibilidade.

Cada dependência síncrona adiciona latência e acoplamento de disponibilidade. Use timeouts explícitos, retries limitados e circuit breaking ou load shedding quando apropriado. Repetir uma mudança de estado só é seguro quando a operação é idempotente ou possui uma chave de idempotência.

Webhooks para notificação externa

Um webhook permite que um sistema notifique outro por callback HTTP. É útil para parceiros e notificações quando o receptor expõe um endpoint acessível.

Webhooks de produção exigem payload assinado, timestamp validado, retries com backoff, IDs estáveis, histórico de entrega e recuperação. Um HTTP de sucesso confirma recebimento conforme o contrato; não significa necessariamente que todo o processamento terminou.

Filas para trabalho assíncrono

Uma fila separa o caminho da requisição do trabalho que pode ocorrer depois. Ela absorve rajadas e permite processamento sustentável. Envio de e-mail, geração de relatórios e jobs em background são exemplos comuns.

Consumidores devem tratar duplicatas e definir o destino após falhas repetidas. Monitore profundidade, idade da mensagem mais antiga, tempo de processamento e dead letters. A fila deve reduzir acoplamento temporal, não esconder falhas.

Eventos para fatos compartilhados

Um evento declara que algo aconteceu: order.placed, payment.authorized ou customer.address.changed. Consumidores independentes podem reagir, reduzindo o acoplamento direto.

Bons eventos representam fatos estáveis, incluem ID único e horário de ocorrência e usam schema versionado. Devem carregar contexto suficiente sem expor dados pessoais ou internos desnecessários.

Eventos também trazem consistência eventual, duplicatas, entrega fora de ordem, evolução de schema, replay e propriedade operacional. Use-os quando esses trade-offs resolverem acoplamento ou escala reais.

Combine padrões deliberadamente

Sistemas reais combinam padrões. Uma API aceita um comando, confirma uma transação e publica um evento. Uma fila agenda processamento lento. Um webhook notifica um parceiro. As fronteiras precisam permanecer explícitas.

Um desafio é publicar o evento de forma consistente com a alteração no banco. Um transactional outbox pode impedir que um commit bem-sucedido seja seguido por um evento perdido. Consumidores continuam precisando de idempotência e processamento observável.

Defina propriedade e evidência

Toda integração precisa de proprietário, contrato, objetivos de serviço, controles de segurança e processo de depreciação. Acompanhe requisições e eventos com correlação, sem colocar secrets ou dados pessoais desnecessários na telemetria.

Escolha o padrão mais simples que satisfaça o contrato. APIs fornecem respostas imediatas. Webhooks notificam assinantes remotos. Filas desacoplam trabalho no tempo. Eventos distribuem fatos a consumidores independentes.

O objetivo não é remover todas as dependências. É tornar cada dependência compreensível, observável e resiliente quando uma parte inevitavelmente falhar.

Referência

O AWS Prescriptive Guidance documenta o padrão transactional outbox para coordenar alterações no banco e publicação de eventos.

Artigos relacionados

Webhooks ou Arquitetura Orientada a Eventos: Confiabilidade, Retries e IdempotênciaLogs Estruturados do Jeito Certo: Contexto de Trace, Proteção de PII e Retenção

Vamos melhorar sua plataforma?

Conte o contexto atual e o resultado que sua empresa precisa. Começamos pelo problema de engenharia e definimos um caminho prático.