<div>
                    There are multiple ways, the best from my perspective is Publisher confirms:&nbsp;<a href="http://www.rabbitmq.com/extensions.html#confirms">http://www.rabbitmq.com/extensions.html#confirms</a></div><div><br></div><div>Using Pika, you'll have to grab the master branch at github as 0.9.5 does not support them and 0.9.6 is not released yet (though I am making progress in adding the test coverage I'd like to have there prior to releasing it)</div><div><br></div><div>Here's the method to enable it:</div><div><br></div><div><a href="https://github.com/pika/pika/blob/master/pika/channel.py#L527">https://github.com/pika/pika/blob/master/pika/channel.py#L527</a></div><div><br></div><div>In short:</div><div><br></div><div>channel.confirm_delivery(delivery_confirmation_callback)</div><div><br></div><div>When a message is delivered, you'll now get a callback frame/message to the delivery_confirmation_callback method (whatever you replace that with).</div><div><br></div><div>In doing this you'll need to keep track of what you published, sequence wise on the channel to use to validate the delivery tag in the Basic.Ack frame.</div><div><br></div><div>Hope this helps,</div><div><br></div><div>Gavin</div><div><br></div>
                <div></div>
                 
                <p style="color: #A0A0A8;">On Monday, February 6, 2012 at 1:29 PM, Matt Pietrek wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div>Thanks Ask and Marek for your replies.<br><br>Let me circle back to the original issue. Our system just needs a reliable way of knowing that once we've published a message, that it's safely in the broker. The exact mechanics aren't particularly important.<br>
<br>Obviously transactions will work, but they slow things down to the point where we're doubting the system performance will meet our needs. I'm happy to experiment with publisher-confirms, but it seems that given our simple, synchronous pattern, aren't easy to incorporate without contorting the code. Perhaps I'm wrong, and if so, feel free to correct me.<br>
<br>What's your take here? What's the best path forward?<br><br>In a related question, can either of you offer some insights on the planned futures of Pika / Puka / Kombu in terms of being client libraries we should rely on for commercial app development?<br>
<br>Obviously if there were an official RabbitMQ Python client library, we'd choose that. In the absence of that, we're trying to evaluate the viability of Pika/Puka/Kombu, and whatever else is out there. However, it's hard to get a sense for what is "the future" and what may not be a good choice 3 years from now.<br>
<br>Thanks again,<br><br>Matt<br><br><br><br>
</div><div><div>_______________________________________________</div><div>rabbitmq-discuss mailing list</div><div><a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a></div><div><a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>