[zeromq-dev] is 0MQ guaranteed, in-order delivery?

Martin Sustrik sustrik at fastmq.com
Fri May 15 09:46:41 CEST 2009


Hi Aamir,

> Is it accurate to say that 0MQ provides guaranteed delivery when a
> message is sent from an exchange to a queue, even through network
> disruptions? 

The term "guaranteed delivery" is kind of blurry. People would probably 
expect a system with database storage for messages, clustering support 
for high availability and failover and ability to join message passing 
to XA distributed transactions. This being the definition, 0MQ doesn't 
provide guaranteed delivery.

Instead it provides "good enough delivery" that's sufficient for market 
data. This basically means that you may loose messages that are "on the 
wire" in case of component failure, network outage or power outage, 
however, once the problem is fixed you'll be notified that there may be 
messages missing.

 > The only time the messages will fail to deliver is if the
 > computer hosting exchange runs out of memory?

Actually, exceeding the memory limit is not a problem. There's on-disk 
offload feature that allows you to swap the messages in the queue to the 
disk if memory limit is hit. The swap itself is able to store hundreds 
of gigabytes of data.

> Also, is it accurate to say that 0MQ guarantees that messages will be
> received by the queue in the same order in which they were sent to the
> exchange?

Yes, that's accurate.

Martin


More information about the zeromq-dev mailing list