Transaction Control of Messages
The Mbox provides a message repository so that processes can post messages and continue with their own processing without having to wait for a reply. The messages are stored persistently and are processed only once. Messages have to be processed exactly once to preserve the data integrity of a transaction. For example, if a message instruction is to debit an amount from a bank account then this has to happen only once even if the systems fail. This is achieved using transaction control.
The messages in the database tables provide a reliable messaging system because the message queues are under transaction control. For example, if a message is delivered to the background case instruction processor but the server goes offline for a while, the message instruction still persists in the queue and is retried at a later time.