So, our producers must always succeed to send a message (persistent) even if the messaging system is down. This just simplifies every integration process and every application logic participating. The receiving part is - OK. If a message is delivered it would be processed, if not ... we are waiting.
One idea is to persist each message if the sending fails and some helper daemon which will empty this message log from the DB into the messaging system when it is available.
I have heard also about embedding intermediate messiging system into the application, so that it somehow forwards each message to the real messaging system when it is available automatically.
I want to ask if somebody has done this in a generic way? Or if there is already a solution for this?