Retry Policy
If your webhook consumer endpoint fails to accept a delivery or returns a retriable error status (anything other than a 2xx response), Paxos will automatically attempt to retry the webhook delivery.Retry Schedule
We use an exponential backoff policy with jitter (randomization to avoid retry storms) with the following schedule:- Initial retry delay: ~5 seconds after initial failure
- Subsequent retries: Increasing intervals with exponential backoff
- Maximum retry duration: 24 hours from the time the event was first invoked
Handling Failed Deliveries
After the 24-hour retry window has elapsed, undelivered events will not be automatically retried. To recover these undelivered events, you can:- Use the List Events API to query for events that may have failed delivery
- Use the event IDs to fetch the full event details via the Events API
- Process these events through your regular webhook handling logic
Rate Limits
To ensure optimal performance and stability, Paxos implements rate limits on webhook deliveries:- Default delivery rate: Maximum 10 webhook invocations per second per consumer endpoint
Best Practices
For optimal webhook processing, we recommend:- Respond quickly: Your webhook endpoint should acknowledge receipt with a 2xx status code as quickly as possible (ideally < 500ms)
- Process asynchronously: Acknowledge the webhook immediately, then process the event asynchronously in your application
- Implement idempotency: Design your webhook handlers to be idempotent in case the same event is delivered multiple times
- Monitor delivery failures: Implement monitoring for webhook delivery failures to detect issues early
- Implement backup polling: Establish a periodic job that polls the Events API as a fallback mechanism for missed webhook events