So you want to add webhooks to your app, and after having worked with the webhooks that Stripe provides, you want yours to be as great as theirs. Well, that's more than just sending a JSON payload to your customer's URL and calling it a day, right?
Guard against SSRF
Show what was sent in a webhook
Deal with slow receiving servers, timeouts, and other errors
Retry webhook deliveries with backoffs (up to days later) to work around errors without overwhelming the receiving server
Allow a webhook to be re-sent
Add a background job so you don't hold up your web requests (and add extra costs for a background worker if you're deploying to Heroku)
Record delivery results so your customers can diagnose what happened when a webhook didn't show up as expected
In other words, there's much more than "just POST a JSON payload" to get webhooks that your customers will love. The
good news is, Hook Relay has done all the hard work for you. Here's what your implementation looks like if you use
Hook Relay to deliver your webhooks:
1
Send a webhook to Hook Relay endpoint with the request headers and body that you want to send to $USER_URL. You don't even need to do any configuration ahead of time -- you just pass the $USER_URL in a special header when sending the request
Your request is stored in DynamoDB and
queued in SQS for immediate delivery
2
3
SQS triggers a Lambda function that attempts delivery, and the result is stored in DynamoDB. If the delivery fails, the attempt is retried 64 seconds later, then again 128 seconds later, etc., until the request is successfully delivered or until 3 days have gone by
If you are debugging a production issue or tracking down a specific webhook request, we provide you with all the details about your webhook interactions.
Sign up now, and you can start receiving webhooks from integrations like GitHub, etc., even before you have an app to receive them.
Start for free