I&#39;ve recently added support in my (Pika-based) code for returned message support. It&#39;s generally working as expected, but there&#39;s one question about the ordering of data from the broker.<br><br>The scenario: I&#39;m publishing a message to a non-existent queue. My channel is in transaction mode, so I&#39;m calling channel.tx_commit() after channel.basic_publish. I&#39;ve registered a callback handler for return messages ( channel.add_on_return_callback() )<br>
<br>What I&#39;m seeing is that the basic.return message comes back from the broker and enters my callback *before* the channel.tx_commit() returns. Conceptually I&#39;m fine with this. My understanding is that the basic_return from the broker is expected to be asynchronous.<br>
<br>However, my question is: Is this ordering guaranteed? Can/will the broker always send the basic.return before sending the commitOK message? Or could a client see a CommitOK indicating the broker has the message, and then 10 seconds later see the basic.return?<br>
<br>Thanks,<br><br>Matt<br><br>