Is it appropriate for a server to return 503 ("Service Unavailable")
when the requested operation resulted in a database deadlock?
Here is my reasoning:
503 Service Unavailable
anyway.Seeing as:
503 Service Unavailable
anyway.I'm leaning towards this solution. What do you think?
UPDATE: I think returning 503 ("Service Unavailable")
is still acceptable if you wish it, but I no longer think it is technically required. See https://stackoverflow.com/a/17960047/14731.
I think semantically 409 Conflict is a better alternative - basically if you have a deadlock there's contention for some resource, and so the operation could not be completed.
Now depending on the reason for the deadlock, the request may not succeed if submitted a second time, but that's true for anything.
For a 503, as a client I'd implement some sort of back-away/circuit breaker operation as the system is rate limited, whereas 409 relates to the specific request.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With