Garantias de entrega
A SocialSell garante entrega at-least-once — o mesmo evento pode ser entregue mais de uma vez em situações de falha de rede ou timeout. Seu sistema deve ser idempotente: use o campoid do evento para descartar duplicatas.
Em produção, armazene os IDs processados em um banco de dados persistente (Redis, PostgreSQL, etc.) — um Set em memória é perdido ao reiniciar a aplicação.
Timeout e resposta esperada
A SocialSell aguarda 10 segundos pela resposta do seu endpoint. Se não receber resposta em tempo hábil, considera a entrega como falha e agenda uma retentativa. Resposta esperada: qualquer status2xx (200, 201, 202, 204).
Resposta de falha: qualquer outro status HTTP, timeout ou erro de conexão.
Política de retentativas
Quando uma entrega falha, a SocialSell tenta novamente com backoff exponencial:
Após 5 falhas consecutivas, a assinatura é automaticamente pausada (
status: paused) para proteger o seu sistema de requisições desnecessárias.
Monitorando falhas
O objeto da assinatura inclui um contador de falhas:Reativando uma assinatura pausada
Após corrigir o problema no seu endpoint, reative a assinatura:Ordem de entrega
Eventos são entregues na ordem em que ocorrem, mas a ordem de entrega não é garantida em caso de retentativas. Por exemplo, secontact.updated falhou e está sendo retentado, contact.updated mais recente pode ser entregue antes da retentativa.
Projete seu sistema para lidar com eventos fora de ordem usando os campos created_at do evento.
Ambientes e testes
Durante desenvolvimento, use ferramentas como ngrok, localtunnel ou webhook.site para receber eventos localmente:/v1/webhooks/:id/test (disponível no painel) para disparar um evento de exemplo com o payload real.
