[rabbitmq-discuss] Per queue serialized delivery guarantee

Lucas Vella lucas.vella at neoex.com.br
Fri May 4 19:40:50 BST 2012


I have multiple queues and multiple consumers. To achieve load
balancing, any consumer may consume from any queue, but for logic
consistency in the system, no queue may deliver a message before
receiving ack from the last message delivered from that queue. There
may be a very large number of queues.

Is this scenario possible with RabbitMQ? I was working on the
assumption that no message from a particular queue would be delivered
if the was a pending unacknowledged message there, and a free consumer
would pick a message from another queue, but that was not true for the
tests I made, and serialization was only guaranteed if there was one
consumer per queue. Also, the API did not provide any means for a
consumer to read from "all available queues".

Maybe I was thinking with the wrong abstractions, and I could, inside
the same queue, guarantee the serial delivery of the messages based on
some logic attribute in the message header, like "no message with
attribute X will be delivered if there is an unacknowledged message
with this same attribute X". Is that possible?

What do you suggest?

--
Lucas Clemente Vella


More information about the rabbitmq-discuss mailing list