The API Documentation doesn't go into much detail about handling request failures.
I have a few questions:
1. Will the same request be attempted more than once, or is it lost after the first failed attempt?
2. If we use Webhooks and a request (temporarily or permanently) fails, what's the suggested way to retrieve that data without risking duplicate entries?
3. Will I be notified if a webhook fails?
I can handle errors within my application, but I need to figure out how to handle transient HTTP errors, or any missed data during server downtime, etc.
Hi Phil, Thanks for posting in the forums!
At the moment, when using webhooks we don't retry a request if there is an error and there isn't a way to notify you if a webhook fails. I'm really sorry for the limitation here. If we do see consistent errors over the course of more than a week we will automatically stop the webhook sending requests. You may want to look at our API as an alternative, please get in touch if you have any further questions.
Hi Paul, Thanks for getting back to me. It's really important to us that if the webhook request doesn't reach our application, that we don't lose data.
For the benefit of anybody else who finds this thread, we're now planning to use IronWorker (http://www.iron.io/worker) to handle CM WebHook requests which will give us a very high availability and allow us to code our own fail-over mechanisms.
@paulw I appreciate this is newer functionality and I think it's really important CM continue to work and remove this limitation asap. Really there must be a simple status check and retry not a fire and forget otherwise our integration could become unreliable or we have to ask our clients to invest in a high availability or queuing system - really we feel CM should be the high availability/reliability part in the service. A competitor of yours who you are probably aware of has this nailed in a really nice way, perhaps borrow that approach.