Accrue.Webhook.DispatchWorker (accrue v0.3.0)

Copy Markdown View Source

Oban worker for async webhook handler dispatch (D2-27).

Enqueued by Accrue.Webhook.Ingest in the same transaction as the webhook event row. Loads the WebhookEvent, projects it to %Accrue.Webhook.Event{}, and dispatches to the handler chain.

Dispatch order (D2-30)

  1. Accrue.Webhook.DefaultHandler runs first (non-disableable)
  2. User handlers from Accrue.Config.webhook_handlers/0 run sequentially
  3. Each handler is rescue-wrapped for crash isolation

Retry policy

25 attempts with exponential backoff (WH-05). On final attempt, transitions the webhook event to :dead status (D2-35).

Status lifecycle

:received -> :processing -> :succeeded
                          -> :failed (retryable)
                          -> :dead (final attempt)