Skip to content
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

Implement retry policy on another backend in case of failure #432

Open
hamadodene opened this issue May 6, 2023 · 1 comment
Open

Implement retry policy on another backend in case of failure #432

hamadodene opened this issue May 6, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@hamadodene
Copy link
Contributor

hamadodene commented May 6, 2023

When a request arrives, the backend is chosen randomly among the backends configured in the action associated with the route.

When the backend is chosen and the backend becomes unresponsive due to problems we immediately return a "Service Unavailable" error.

For the same route there could be multiple backends therefore a retry policy could be implemented so that if a backend does not respond the request is passed on to another backend.

This should help deal with cases where there are communication issues with a particular backend.

It should also be possible to indicate on which method requests to retry as for PUT,POST ect. it may not be appropriate in some cases.
While for GET requests it should always be possible to perform a retry.

For PUT,POST type requests, the type of error should be evaluated. If the error is during the connection phase with the backend it might be possible in this case to perform the retry.

@hamadodene hamadodene added the enhancement New feature or request label May 6, 2023
@hamadodene
Copy link
Contributor Author

Something like nginx https://nginx.org/en/docs/http/ngx_http_upstream_module.html

@pv3nturi @aluccaroni what do you think about?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant