title: Amazon SQS Dead Letter Queue: Is it really dead letter or poison?
body: <p>I'm trying to get clarification on what exactly Amazon's SQS Dead Letter Queue is doing. </p>
  
  <p>According to <a href="http://aws.typepad.com/aws/2014/01/amazon-sqs-new-dead-letter-queue.html" rel="noreferrer">http://aws.typepad.com/aws/2014/01/amazon-sqs-new-dead-letter-queue.html</a></p>
  
  <blockquote>
    <p><strong>Dead Letter Queue</strong> - The ARN (Amazon Resource Name) of an SQS queue that will receive the messages which were not successfully processed after maximum number of <strong>receives</strong> by consumers.</p>
  </blockquote>
  
  <p>Doesn't that sound more like a Poision Queue? The key distinction being that the consumers did receive the message. A dead letter would be when the message is potentially fine, but can't be delivered, probably due to a service outage. <a href="http://www.eaipatterns.com/DeadLetterChannel.html" rel="noreferrer">http://www.eaipatterns.com/DeadLetterChannel.html</a></p>
  
  <p>Where as this sounds like the message is being successfully received multiple times, but processing the message fails, which I understand to be the meaning of a Poison Message Queue. </p>
  
  <p><strong>Message Bus vs Queue</strong></p>
  
  <p>Does the Dead Letter Pattern have different meaning in the context of a plain old queue? Since SQS is just a queue, not a message bus, it isn't responsible for delivering messages. Instead it waits for messages to be picked up (requested). So the traditional Dead Letter pattern doesn't really apply since there isn't a message bus attempting to deliver a message and not being able to find a recipient. </p>
  
  <p><strong>Can SQS behave like a message bus?</strong></p>
  
  <p>Is there a way through SQS to set up channels and listeners instead of explicitly polling for messages from the queue?</p>