-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retry calling the API when a retry could succeed #12
Comments
Hey @ebdrup, Could you please provide more information on how did you face those errors so we can investigate that? Thanks! |
We see these kind of network errors (probably) on all web requests periodically, when the volume is high. If it was a genuine 500, returned by figo, you should see it in your own logs that you hopefully monitor - I don't think it's a 500, but a network failure. That's why we build the module request-retry-stream that we use almost everywhere we call webservices. The retries made all these errors go away. And thats nice since we are trying to implement a zero-tolerance for failing web requests. Unfortunately we can't use request-retry-stream on your web requests as they are embedded in your own raw implementation inside your module. Allan Ebdrup, CTO @ Debitoor
|
@mfilenko Any news on this issue? Today we got some 502s from you. These can probably also successful if retried. Response we got from you:
|
Hey @ebdrup, Is it possible to use your request-retry-stream library for that or methods except |
Hey @ebdrup, Thank you again for pointing out this issue. We are working hard to provide our partners and users with the best experience (you can check our Pingdom uptime history). And we also have a zero-tolerance for failing requests. We will do our best to eliminate the root cause of this issue on the infrastructure level, so there will be no need in workaround like automatically retry failing request in the SDK. |
When you are providing a SDK that does network connections to your API, a situation where retries are never needed does simply not exist. You HAVE to build in retries to make things work reliably. There is no two ways about it, you simply have to. It is NOT a workaround. It's the only real option for distributed computing. Give this wikipedia article a good read: Please reconsider. We need retries in your SDK, as any seasoned developer with experience with distributed computing will be able to tell you. |
@mfilenko Sorry I didn't see you question about request-retry-stream. No those are not experimental. We are actually using them in production. I'll update the readme. :-) |
@mfilenko I updated the readme, also with information about errors returned. We often use We would have added it to our requests to figo. But that was impossible since the requests are embedded in your SDK. We are making quite a lot of http requests with it, because our application is build with a lot of microservices. |
@ebdrup, great, thanks! We will include this in the next release. |
Issue resolved with PR #25 |
We're seeing a few
internal_server_error
errors in production.Could you make figo retry (maybe 3 times) on retry-able errors? Meaning any 5XX statuscode or any of these errors:
The text was updated successfully, but these errors were encountered: