When a consumer pulls from the SQS queue by default there is a 30 second window where the message is invisible to all other consumers while this message is being processed to avoid duplicate requests, an API call is needed to extend this time from the consumer, you can change the default window time. Yes this does mean if the message isn’t processed in time and another request is made outside of this 30 second window it will be a duplicate request. Base the default time based on your application and how long it takes to process these requests. Now onto long polling, this service allows your consumer to poll the SQS queue for an extended period of time such as 20 seconds and simply wait for messages to enter the queue, it improves performance, lowers latency, and decreases the number of API calls that need to be made