Treat webhooks as at-least-once, not exactly-once. Duplicates and out-of-order events happen.
Minimum viable hardening
- Verify signatures; reject invalid payloads.
- Persist every webhook event id + payload (dedupe).
- Acknowledge quickly; process asynchronously.
- Add a dead-letter path and a reprocessor.
If you can’t replay safely, you can’t recover safely.
Neruba persists webhook payloads for replay safety and supports reprocessing failed deliveries.
Want the full sequence by email? Subscribe to Neruba Engineering Notes.