Summary
Failed deliveries must be automatically retried with exponential back-off so transient
outages (receiver down, SMTP blip) do not cause permanent notification loss.
Acceptance criteria
Notes
Back-off runs inside DeliveryService.dispatch() — no separate cron job needed for v0.1.
Summary
Failed deliveries must be automatically retried with exponential back-off so transient
outages (receiver down, SMTP blip) do not cause permanent notification loss.
Acceptance criteria
WEBHOOK_MAX_RETRIES(default 5)WEBHOOK_RETRY_BASE_MS(default 1000ms)BASE * 2^(attempt - 1)msfailedin DBPOST /api/deliveries/:id/retryresetsattempts = 0andstatus = pendingfailedNotes
Back-off runs inside
DeliveryService.dispatch()— no separate cron job needed for v0.1.