Pitfalls to avoid designing SQS Consumers – threads, locks and self induced message duplication and processing delays

Background Some of my previous blog posts on SQS like Long Polling vs Short Polling and Delivery Delays covered the basics of leveraging Amazon SQS for messaging, supported polling models, message life cycle and much more. As can be seen from those posts, building simple SQS consumers, consuming and processing messages from Amazon SQS queues…