In general, it is recommended that you retry failed requests. Always set a repeat limit. Also, there are often certain server responses that signal that the client will not try again to use when the server is experiencing problems that will not be resolved by retrying later, for example, a database failure. A very good way to avoid hacking a server under high load with retry requests is to use exponential delay, for example, the first attempt after 30 seconds, the next after 300 seconds, etc.
The return URL seems unRESTful - there should be a single endpoint for the resource. The client does not care if this endpoint is supported by your main stack or backup. Typically, the dispatcher is used to distribute requests between application servers, so if it does not work, it can redirect traffic to others until the problem is fixed.
source share