ADR-0003: Webhooks canônicos, framework-agnostic, parse que nunca lança
- Status: aceito
- Data: 2026-07-10
Contexto
Receber mensagens é o maior valor do pacote e a maior dor: cada provider envia webhooks com formatos e nomes de evento próprios, e novos tipos de evento aparecem sem aviso.
Decisão
- Eventos canônicos (
message.received,message.sent,message.ack,connection.update,group.update,unknown) definidos no core; todo adapter traduz para eles. - A entrada é
{ headers, body, query }(WebhookInput), nunca oreqde um framework. connector.webhooks.parsenunca lança: payload irreconhecível ou exceção do adapter viram eventounknowncomreason.
Justificativa
- Framework-agnostic: funciona igual em Express, Fastify, Next.js e Cloudflare Workers.
- Um endpoint de webhook que responde 500 por causa de um evento novo do provider gera tempestade de retries —
unknowndegrada graciosamente e mantém o evento observável.
Consequências
- Consumidores que precisam de eventos ainda não mapeados leem
rawdo eventounknown. - Adapters DEVEM retornar
unknownpara o que não reconhecem, nunca lançar (o conector garante isso de qualquer forma, como cinto de segurança).