Polling messages from Amazon SQS seems simple — until it’s not. You need to continuously fetch messages, process them concurrently, delete the successful ones, and retry failures with appropriate delays. Getting this right, especially at scale, means dealing with multithreading, visibility timeouts, and reliability — often with verbose or heavyweight tooling.
Libraries like Spring’s SQS support exist, but they come with trade-offs: vendor lock-in, complex dependency graphs, and upgrade pains that stall your agility.
That’s exactly why I built java-sqs-listener — a small, focused library designed for reliability without the bloat.
📦 Check it out on Maven Central
📂 Explore the Spring Boot Example
Disclaimer: I’m the author of this library.