How do people in production handle the possibility that your service might miss a webhook notification? If you miss a notification you'll end up with stale data and you won't know it. Slack has a retry policy for a while but will then just give up. Another webhook provider I've looked at says nothing at all about this sort of thing. How do folks deal with this in production systems? Seems to me like the best way to a…
Webhooks do’s and dont’s: what we learned after integrating APIs
71–80 of 83 posts
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#72How do people in production handle the possibility that your service might miss a webhook notification? If you miss a notification you'll end up with stale data and you won't know it. Slack has a retry policy for a while but will then just give up. Another webhook provider I've looked at says nothing at all about this sort of thing. How do folks deal with this in production systems? Seems to me like the best way to a…
I have recently moved all received webhooks to a job queue and have been very happy. you can retry the processing on your own terms.
It also allows you to do testing by injecting pre-cooked payloads into your queue system.
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#73Earlier quoted context omitted.
Maybe webhook providers could provide an endpoint where one could poll for events that failed to deliver.
The good APIs do, but it's still at a loss to both sides. a) The producer of the events has to store them in semi-permanent storage. I've been there and done that - failed webhooks result in a table of tens of millions of rows, even if the memory on each event is only 48 hours. It's astounding how many events fail to process. And I've been through extensive verification that there is truly no problem on our side - it…
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#74How do people in production handle the possibility that your service might miss a webhook notification? If you miss a notification you'll end up with stale data and you won't know it. Slack has a retry policy for a while but will then just give up. Another webhook provider I've looked at says nothing at all about this sort of thing. How do folks deal with this in production systems? Seems to me like the best way to a…
I would prefer to implement the sending of webhooks in bulk - if the consumer falls behind, they receive up to 100-1000 webhooks per request (depending on the size and complexity of each individual webhook - ids only is 1000, complex documents 100). This drastically cuts down on the number of concurrent requests to a single client when load is high, or the consumer broke down for a period of time. Unfortunately, deve…
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#75Aside: Webhooks are always a pain. Implementing polling is easier for both sides. I routinely have to integrate with random 3rd party systems, some with no or broken webhooks, some with no API at all. It turns out for my customers (this may not be always the case) eventual consistency is more important than timelyness. What I do now every time I need to sync data from a third party is I always implement some sort of…
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#76Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#77How do people in production handle the possibility that your service might miss a webhook notification? If you miss a notification you'll end up with stale data and you won't know it. Slack has a retry policy for a while but will then just give up. Another webhook provider I've looked at says nothing at all about this sort of thing. How do folks deal with this in production systems? Seems to me like the best way to a…
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#78Earlier quoted context omitted.
The good APIs do, but it's still at a loss to both sides. a) The producer of the events has to store them in semi-permanent storage. I've been there and done that - failed webhooks result in a table of tens of millions of rows, even if the memory on each event is only 48 hours. It's astounding how many events fail to process. And I've been through extensive verification that there is truly no problem on our side - it…
You could also help customers who apparently have trouble properly connecting to your APIs by giving better error returns (got type A, expected type B), providing client libraries or giving more extensive support (for a price). Blaming the customer is easy, providing a way for even those "incompetent developers" to interface with you in a way that is easy to understand and debug for all parties is hard.
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#79How do people in production handle the possibility that your service might miss a webhook notification? If you miss a notification you'll end up with stale data and you won't know it. Slack has a retry policy for a while but will then just give up. Another webhook provider I've looked at says nothing at all about this sort of thing. How do folks deal with this in production systems? Seems to me like the best way to a…
I would prefer to implement the sending of webhooks in bulk - if the consumer falls behind, they receive up to 100-1000 webhooks per request (depending on the size and complexity of each individual webhook - ids only is 1000, complex documents 100). This drastically cuts down on the number of concurrent requests to a single client when load is high, or the consumer broke down for a period of time. Unfortunately, deve…
Re: Webhooks do’s and dont’s: what we learned after integrating APIs
#80How do I tell webhook providers to send test notifications to my local development instance without tampering with the production setup on both sides?