Hows messaging different?
In regular communications between clients and servers, both machines need to be up and running, and so do the software processes. If either process or machine goes down, then communication cannot continue. In non-durable messaging, processes can be up or down at any point in time. Sending a message involves putting it in an outgoing queue on the same machine. At the point, the sending process can go down and nothing bad will happen. The messaging infrastructure then tries to get that message to the target machine in collaboration with its counterpart on that machine. When that message arrives, if the process is down, the message just sits in a queue waiting. When the process comes up, it can process the message. Durable messaging does all of the above but durably. When the message is put in the output queue, it’s written to disk – so that even if the sender crashes at that point, the message won’t be lost. When the message is transferred to the target machine, it is written to disk the