The outbox, plainly
When a webhook lands, its delivery job is written inside the capture transaction, then a worker picks it up the moment it commits. No polling interval to wait out. Failures retry with exponential backoff; exhausted deliveries park in a dead-letter state you can see and restart. Kill the process mid-burst and every obligation survives.
- Every attempt recorded: status, duration, error, retries and replays alike
- Rate-smoothed per destination, a 500-request replay won't stampede your server
- SSRF-guarded targets: private and internal ranges refused at connect time
Replay: the vault's second act
Anything the vault holds can be delivered again, to the original destination after you fix the bug, or pointed at staging to reproduce it. Replay one request inline and watch the outcome, or queue hundreds in bulk through the same audited pipeline.
- Replays appear in the same attempt ledger as automatic retries
- Truncated-body requests refuse to replay rather than lie to your server
- Bulk replay from the explorer or one API call

the attempt ledger, nothing to reconstruct, it's all written down
Relay with receipts.
Forwarding is on every plan, point an endpoint at your URL and watch the ledger fill.