I have a webservice that have a couple of "machine" clients connected to it that does HTTP post with data once in a while. The nature of the service is that I cant allow the service to loose a single incomming request. However I do experience that once in a while I get errors from database backend or similar resulting in errors and the post is lost. (however the response is not that critical to deliver).
Are there any best practice documents/architecture descriptions on how to handle such errors. I am thinking in the terms of queuing the incoming request and try it later or perhaps forward it to another webserver in the webfarm.
I am currently running in AWS with RDS/MySQL database backend to an IIS7.5 web application. Everything load balanced and running in multi-az mode. My idea is to put any troublesome request into SQS and process that queue regularly but I guess that there is a lot of thinking into this area already and probably some pitfalls that I will hit if rolling it on my own.
4xx
codes are used to indicate client side problems or that the client must change the request in order to get success. For server side problems you are supposed to use5xx
codes.