I've a large F5 LTM load balancer environment I'm looking after which we are configuring to rate limit requests at a URI level. For human web users we are 302ing them to a busy page, but we also run web services and need to politely tell the soap client to go forth and procreate as well. Not knowing a whole heap about SOAP/XML responses I'm not clear on what we should tell the client. Will a very basic 500 reponse suffice or do we need to craft an legit SOAP response as well?
You could combine your 500 with a SOAP Fault message, which allows your clients wrap their request into a try/catch (or whatever their language's mechanism is for dealing with this) and receive a polite "please come back later" message in the caught exception.
Why not send an http 503 or 509 status?
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error