Webhooks
O que são Webhooks?
Webhooks são uma maneira eficiente e automatizada de uma aplicação enviar dados em tempo real para outra aplicação. Eles permitem que sistemas diferentes comuniquem eventos específicos sem a necessidade de uma solicitação ativa da aplicação receptora. Em vez disso, a aplicação que gera o evento envia uma notificação, normalmente na forma de uma solicitação HTTP POST, para uma URL previamente configurada pela aplicação receptora.
O que os Webhooks fazem?
Os Webhooks são usados para notificar sua aplicação sobre eventos que ocorrem em outra aplicação ou serviço. Algumas das tarefas comuns realizadas por Webhooks incluem:
-
Notificações em Tempo Real: A aplicação receptora é imediatamente notificada quando algo acontece, como a criação de um novo pedido, uma mudança de status, ou uma nova mensagem.
-
Automação de Processos: Permitem automatizar respostas ou ações em sua aplicação quando certos eventos ocorrem, sem a necessidade de consultas constantes à API.
-
Integração entre Sistemas: Facilitam a integração entre sistemas diferentes, permitindo que eventos em um sistema desencadeiem ações automáticas em outro.
Como os Webhooks funcionam?
-
Configuração: Primeiro, a aplicação receptora deve configurar um endpoint (uma URL pública) que estará pronto para receber as notificações via Webhook.
-
Registro do Webhook: A aplicação emissora precisa ser configurada para enviar notificações para o endpoint do Webhook sempre que um evento específico ocorrer.
-
Envio do Evento: Quando o evento configurado ocorre, a aplicação emissora envia uma solicitação HTTP POST para o endpoint do Webhook, incluindo no corpo da requisição os dados relevantes sobre o evento.
-
Processamento do Evento: A aplicação receptora processa a informação recebida e pode executar várias ações em resposta ao evento, como atualizar um banco de dados, enviar um e-mail, ou disparar outro processo interno.
Tratamento de Falhas e Retentativas
Em um cenário ideal, a aplicação receptora recebe e processa a solicitação do Webhook sem problemas. No entanto, falhas podem ocorrer devido a vários fatores, como indisponibilidade do servidor, problemas de rede, ou erros de processamento.
Para garantir que as notificações importantes não sejam perdidas, implementamos um mecanismo de retentativa. Se a aplicação receptora responder com um código de status HTTP maior que 400 (indicando um erro), a aplicação emissora tentará reenviar a notificação do Webhook até 5 vezes.
Detalhes da Retentativa
-
Critério de Falha: Qualquer resposta com código de status HTTP maior ou igual que 400.
-
Número de Retentativas: Até 5 tentativas.
-
Intervalo entre Retentativas: O intervalo entre cada retentativa aumenta progressivamente usando um fator de 2,5. Os intervalos em segundos são os seguintes:
- 1ª Tentativa: 2,5 segundos (
2.5^1
) - 2ª Tentativa: ~6 segundos (
2.5^2
) - 3ª Tentativa: ~15 segundos (
2.5^3
) - 4ª Tentativa: ~39 segundos (
2.5^4
) - 5ª Tentativa: ~97 segundos (
2.5^5
)
Cada intervalo é calculado como
2,5^n
, onden
é o número da tentativa. - 1ª Tentativa: 2,5 segundos (