My web API talks to an outside service running elsewhere, based on the web API requests (mostly POST). There is a message queue (RabbitMQ) that sits in between them, for request/response from either side.
My web API is called by client applications that does not have a retry mechanism. Once the outside service responds, it is notified to the client through a web socket. The service that my web API calls is also not 100% reliable. My web API should make sure that it gives responses (async) for all the POST calls from the client application after getting responses from the outside service.
Should I be logging/recording my POST requests to a mongodb or something similar for retry mechanism, in case the outside service times out? Will logging to a persistent db like mongo with an I/O operation affect the requests that can be served by my web API ?. Is there a common pattern for calling outside service with a retry mechanism, that is not a code retry.