<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Fri, May 12, 2017 at 3:40 PM Kareem Hepburn <<a href="mailto:kareemgan@gmail.com">kareemgan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Gotcha. Thanks! I was using Reject earlier but I guess Ack is sufficient to what I need to do.</div><div class="gmail_extra"><br></div></blockquote><div><br></div><div>When you reject a message, you can choose if it should be requeued or not. Here it is good to build your application such that it knows if the message is likely to succeed later or not. If you can't parse the message, say, then it will never work. If your database is currently down, you can try later, for instance. Think the difference between HTTP 4xx errors (client side) or 5xx errors (server side).</div><div><br></div><div>You want to make the discrimination because otherwise a single "poisonous" message will get sent to all your workers and that can take all the workers down by infecting them one by one. Granted, Erlang makes that harder by restarting. Yet, I've seen such problems in production. I've also seen what it does to a Python system with no supervisor restarts. It aint' pretty :)</div><div> </div></div></div>