ReceiveMessage request queries only a subset of the servers (based on a weighted random distribution) to find messages that are available to include in the response.
Sends the response right away, even if the query found no messages.
Long polling:
ReceiveMessage request queries all of the servers for messages
Sends a response after it collects at least one available message, up to the maximum number of messages specified in the request.
When the wait time for the ReceiveMessage API action is greater than 0.
Helps reduce the cost of using SQS by eliminating the number of empty responses and false empty responses.