I think your questions beg another: where can we just take out this layer of complexity, and how?
Sometimes rather than chasing edge cases, I find another way to do the same thing using a routine or library that already has all the edge cases ironed out.
If you're a small team or one person, you can't expect to stay on top of something that starts broken.
Very biased, but I think you should just use Svix[1].
Though if you're interested, I recorded a video about webhook architecture at some point you may find useful: https://m.youtube.com/watch?v=4jvV75OD620
1: https://www.svix.com
I’m not affiliated with svix but a happy customer.
It’s just worked, for years for us in production. We’ve never had an issue.
Now our use case is pretty simple but for us it’s a piece of infrastructure we never worry about.
I think your questions beg another: where can we just take out this layer of complexity, and how?
Sometimes rather than chasing edge cases, I find another way to do the same thing using a routine or library that already has all the edge cases ironed out.
If you're a small team or one person, you can't expect to stay on top of something that starts broken.
Totally agree. For me, with a vanilla Rails app, I leaned on Sidekiq to handle webhook queueing, processing, and retries: https://keygen.sh/blog/how-to-build-a-webhook-system-in-rail...
It's scaled quite well. Billions of webhooks. I barely ever think about it.