[rabbitmq-discuss] question on message ordering guarantees

Artur Ejsmont ejsmont.artur at gmail.com
Thu Oct 18 10:30:23 BST 2012


Hi there everyone,

I am working on a rabbitmq based messaging system and i was wondering if
you could help me out :)

I was wondering how could i enforce events being processed in the order
they are published?

Let me draw the rough setup:

1. We would have single exchange for the app, publishers dont setup routing
they just push into the exchange and disconnect whenever. Multiple
publishers can send messages regarding same object (for example a video).

2. Each type of consumer gets a separate queue and creates 1-n bindings to
get copies of messages that match the key into it's queue. Consumers
connect and disconnect but the queue remains in place as messages and
queues are persistent.

3. To make it a bit more complex you can have competing consumers consuming
from the same queue. For example video encoder would take a lot of time to
process so we would have  multiple parallel instances running.

Now, the issue is that i am not clear on what are the guarantees about
message ordering, especially around client failures, disconnects etc. Is
there some trick to get part of messages in guaranteed order as in ActiveMQ
message groups? I would like to have some guarantee that for example all
messages regarding a single video would be processed in the order they were
published.

I am not sure what would be the best way to deal with it so i ask you for
some directions or advice :)

Sorry for such a lengthy message and thank you very much for help

Artur

-- 
Visit me at:
http://artur.ejsmont.org/blog/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20121018/30d85c7b/attachment.htm>


More information about the rabbitmq-discuss mailing list