[rabbitmq-discuss] Clustering and ordering, please explain

rabbit at subscribed.udmvt.ru rabbit at subscribed.udmvt.ru
Thu Sep 16 08:57:17 BST 2010

Hello, everyone.

I'm amused by the rabbitmq server's clustering capabilities,
but it seem unlear to me how exactly the messages get distributed
within a cluster of nodes.

As far as I understand, queues are not replicated between nodes, right?
But what about exchanges? They are replicated and "exists" on every node, right?

So, I'm imagined such situation:
suppose we have N boxes, each running rabbitmq cluster node.

Every box also executes some application instance, that connects to it's own
rabbitmq node, creates it's personal queue and binds it to one globally
known fanout exchange. Application instances publish their messages to
the exchange and receive the global message flow from personal queues.

So, if one box gets down, the rest continues without interruption, no one
notices that, right?

But the question is: what if two boxes, A and B, each have published a message
to the same exchange at the same moment in time, is it true, that
there is no ordering guaranties when that messages gets delivered
to queues across nodes? Is it true, that different queues may deliver
two messages in different order, despite they had been published on the same

Sorry if it has already been described somewhere, I'll gratefully accept any links
discussing the subject.

More information about the rabbitmq-discuss mailing list