Durability vs. Reliability

Many people tend to either confuse these concepts or assume they are the same.  This is a quick write up to clarify that these are two fundamentally different yet critical concepts.

Message reliability focuses on the delivery of messages. Message reliability means a message needs to be delivered at least once with possible duplicates or at most once with no duplicates.  Reliability also dictates whether messages must be delivered in the same order they were sent or can be delivered out of order.

Message durability focuses on the management of messages.  Message durability dictates whether a message can be simply kept in-memory or if it must be saved to persisted storage to avoid message loss (in-memory messages are lost during system, network or power failures).  Durable messaging also enables operations to resolve issues in an much easier manner than relying solely upon reliable messaging.  When a durable messaging solution experiences an exception or outage it is much easier to determine the state of the transactions and restore/replay messages from a known state without losing any messages.

Now you know.