## Porque webhook-first

O provider externo (Stripe) é a fonte de verdade para eventos críticos. O Beacon prioriza ingestão rápida e validação mínima na entrada para evitar timeouts e perda de eventos.

## Fluxo de processamento

<Steps>
  <Step title="1) Ingestão">Receber webhook, validar assinatura e persistir o evento.</Step>
  <Step title="2) Ack rápido">Responder `2xx` o mais cedo possível após persistência segura.</Step>
  <Step title="3) Processamento assíncrono">Executar lógica de negócio por worker com controlo de retries.</Step>
  <Step title="4) Observabilidade">Publicar estado final e métricas de fila, latência e falhas.</Step>
</Steps>

## Garantias operacionais

- Deduplicação por `event.id` para reentregas.
- Reprocessamento seguro com idempotência funcional.
- Isolamento de falhas por tipo de evento e organização.

## Métricas mínimas

| Métrica | Objetivo |
| --- | --- |
| Tempo de ack do webhook | manter baixo e estável |
| Profundidade da fila | detetar backlog precocemente |
| Taxa de retries | identificar degradação de downstream |
| Tempo até estado final | medir impacto operacional real |

<Tip title="Benefício">Este modelo reduz risco de timeout no provider e melhora previsibilidade de replay/recuperação.</Tip>
