[rabbitmq-discuss] Ordering guarantees for multiple publishers, one queue and one consumer?

Tuure Laurinolli tuure.laurinolli at portalify.com
Wed Sep 5 14:30:05 BST 2012


Assuming nodes A and B publish messages to exchange X with one queue Q that has one consumer C, is it possible to guarantee ordering of messages from A and B to C, assuming A and B have a side channel over which they can coordinate their actions but can't communicate with C directly? If they were able to communicate with C directly, the problem would be trivial, since B could ask C "Have you received a message from A?" and only publish if the answer is yes.

Without being able to communicate with C, is it e.g. enough for A to do a transactional publish with mandatory flag, wait for commit-ok and only then give B signal that would allow B to do its publish? Will guarantee that the message from A will arrive to C before the message from B? It seems to me that AMQP 0-9-1 does not guarantee this (essentially allowing each incoming channel to have its own FIFO queue from with an outgoing channel would pull messages in undefined order). Does RabbitMQ offer stronger guarantees here?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120905/462a85cb/attachment.htm>

More information about the rabbitmq-discuss mailing list