An enterprise is using Messaging to integrate applications.
How can the sender make sure that a message will be delivered, even if the messaging system fails?
Use Guaranteed Delivery to make messages persistent so that they are not lost even if the messaging system crashes.
With Guaranteed Delivery, the messaging system uses a built-in data store to persist messages. Each computer the messaging system is installed on has its own data store so that the messages can be stored locally. When the sender sends a message, the send operation does not complete successfully until the message is safely stored in the sender’s data store. Subsequently, the message is not deleted from one data store until it is successfully forwarded to and stored in the next data store. In this way, once the sender successfully sends the message, it is always stored on disk on at least one computer until is successfully delivered to and acknowledged by the receiver.
... Read the entire pattern in the book Enterprise Integration Patterns