Is it possible for Nginx to put incoming HTTP requests into a "requests" queue in RabbitMQ and listen to responses on a "response" queue? This way, backend crashes could be made invisible to the API client by having a retry mechanism for failed messages.
+------------+ +--------+ +-----------+ +-----------+
| API Client | ----------> | Nginx | ----------> | RabbitMQ | <---------- | Worker |
+------------+ +--------+ +-----------+ +-----------+
In case it is not possible to do so, wouldn't this be desirable or do I oversee something?
RabbitMQ doesn't support HTTP like that. HTTP is not a messaging protocol like AMQP, STOMP, etc. You can't simply push HTTP requests into a messaging queue.