<div dir="ltr">Since it is a new project, might be worthwhile to consider a design that tolerates occasional minor ordering differences.<div><br></div><div>That is what we do, so we can scale horizontally.</div><div><br></div>
<div>For example, the messages originating from our internal groups are always cached for up to 30 days in our global data store (Cassandra). It's important to them that the messages are retrievable in order, and by this they mean the order in which they submit them.</div>
<div><br></div><div>Basically, we insist that <b>they</b> timestamp them to the microsecond. We use their timestamp, ultimately, as the Cassandra timestamp for that message, guaranteeing order where it counts. Meanwhile, because we have many clusters involved with parallelized services and may, in fact, be replicating important messages, we cannot guarantee exact order during processing.</div>
<div><br></div><div>Some funny stuff happened in staging using this approach due to lack of time synchronization, but in production it has worked very well.</div><div><br></div><div>Michael Laing</div><div>NYTimes</div></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jan 26, 2014 at 7:27 AM, Mysurf Mail <span dir="ltr"><<a href="mailto:stammailbox@gmail.com" target="_blank">stammailbox@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi, <div>I need to choose a new Queue broker for my new project.</div><div>This time I need a scalable queue that supports pub/sub, and keeping message ordering is a must.</div>
<div><br></div><div>I read Alexis comment to <a href="http://www.quora.com/RabbitMQ/RabbitMQ-vs-Kafka-which-one-for-durable-messaging-with-good-query-features" target="_blank">an ancient question</a> in Quoara. He writes </div>

<div><span style="color:rgb(51,51,51);font-family:'Helvetica Neue',Arial,sans-serif;font-size:13px;line-height:17.920000076293945px"><br></span></div><div><span style="color:rgb(51,51,51);font-family:'Helvetica Neue',Arial,sans-serif;font-size:13px;line-height:17.920000076293945px">"Indeed, we think RabbitMQ provides stronger ordering than Kafka"</span><br>

</div><div><br></div><div>I read the message ordering section in <a href="http://www.rabbitmq.com/semantics.html" target="_blank">rabbitmq docs</a>:</div><div><br></div><div><span style="font-size:13px;color:rgb(85,85,85);font-family:Verdana,sans-serif;line-height:18px">"Messages can be returned to the queue using AMQP methods that feature a requeue parameter (</span><span style="font-size:13px;color:rgb(51,51,51);font-family:'Courier New',Courier,monospace;white-space:nowrap;line-height:18px">basic.recover</span><span style="font-size:13px;color:rgb(85,85,85);font-family:Verdana,sans-serif;line-height:18px">, </span><span style="font-size:13px;color:rgb(51,51,51);font-family:'Courier New',Courier,monospace;white-space:nowrap;line-height:18px">basic.reject</span><span style="font-size:13px;color:rgb(85,85,85);font-family:Verdana,sans-serif;line-height:18px"> and </span><span style="font-size:13px;color:rgb(51,51,51);font-family:'Courier New',Courier,monospace;white-space:nowrap;line-height:18px">basic.nack</span><span style="font-size:13px;color:rgb(85,85,85);font-family:Verdana,sans-serif;line-height:18px">), or due to a channel closing while holding unacknowledged messages...</span><span style="color:rgb(85,85,85);font-family:Verdana,sans-serif;font-size:13px;line-height:18px"><b>With release 2.7.0 and later it is still possible for individual consumers to observe messages out of order</b> if the queue has multiple subscribers. This is due to the actions of other subscribers who may requeue messages. From the perspective of the queue the messages are always held in the publication order."</span></div>

<div><span style="color:rgb(85,85,85);font-family:Verdana,sans-serif;font-size:13px;line-height:18px"><br></span></div><div><span style="color:rgb(85,85,85);font-family:Verdana,sans-serif;font-size:13px;line-height:18px">So, if I need to handle messages by their Order, I can only use rabbitMQ with an e</span><font color="#555555" face="Verdana, sans-serif"><span style="line-height:18px">xclusive queue  to each consumer? Is RabbitMQ still considered a good solution for ordered message queuing?</span></font></div>

<div><font color="#555555" face="Verdana, sans-serif"><span style="line-height:18px">Thanks.</span></font></div><div><span style="color:rgb(85,85,85);font-family:Verdana,sans-serif;font-size:13px;line-height:18px"><br></span></div>

<div><span style="color:rgb(85,85,85);font-family:Verdana,sans-serif;font-size:13px;line-height:18px"><br></span></div><div><br></div><div><br></div></div>
<br>_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
<br></blockquote></div><br></div>