I'm trying to get clarification on what exactly Amazon's SQS Dead Letter Queue is doing.
According to http://aws.typepad.com/aws/2014/01/amazon-sqs-new-dead-letter-queue.html
Dead Letter Queue - The ARN (Amazon Resource Name) of an SQS queue that will receive the messages which were not successfully processed after maximum number of receives by consumers.
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. http://www.eaipatterns.com/DeadLetterChannel.html
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.
Message Bus vs Queue
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.
Can SQS behave like a message bus?
Is there a way through SQS to set up channels and listeners instead of explicitly polling for messages from the queue?