Pull-Based
SQS is pull-based, not pushed-based
256KB
Messages are 256 KB in size.
Text Data
Including XML, JSON, and unformatted text.
Guarantee
Messages will be processed at least once
Up to 14 Days
Messages can be kept in the queue from one minute to 14 days.
Default is Four Days
The default retention period is 4 days.
Features
- Decouple the components of an application so they run independently, easing message management between compoentns.
- Any component of a distributed application can store messages in the queue. Messages can contain up to 256KB of text in any format
- Any component can later retrieve the messages programmatically using Amamzon SQS API.
Resole Scheduling Issues
- The queue resolves issues that arise if the producer is prodcuing work faster than the cuonsumer can process it
- Or if the producer or consumer are only intermittently connected to the network.
Types of SQS
Standared Queues
- Unlimited Transaction: Nearly-unlimited number of transactions per second
- Guarantee: Guarantees that a message is delivered at leat once
- Best-Effort Ordering Messages are generally delivered in the same order as they are sent
- Occasionly more than one copy of a mesage might be delivered out of order
FIFO Queues
- The order in which messages are sent and received is strictly preserved
- A message is delivered once and remains availabe until a consumer processes and deletes it. Duplicates are not introduced.
- FIFO Queues are limited to 300 transactions per second. But have all the capabilities of standard queues.
Change the Visibility Timeout
- The default visibility timeout is 30 seconds
- Increase it if the task takes more than 30 seconds
- The maximum is 12 hours
Short Polling Versus Long Polling
Short Polling: A response is returned immediately even if no messages are in the queue. A cost per reponse.
Long Polling: Periodically polls the queue and only returns a response when a message is in the queue or the timeout is reached. Most cost effective option.
SQS Delay Queues
Postpone delivery of new message
- Postpone delivery of new messages to a queue for a number of second
- Messages sent to the Delay Queue remain invisible to consumers for the duration of the delay period
- Default delay is 0 seconds, maximum is 900
When should you use a Delay Queue?
- Large distributed applications which may need to introduce a delay in processing
- You need to applya delay to an entire queue of messages
- e.g adding a delay of a few seconds, to allow for updates to your sales and stock control databases before sending a notification to a customer confirming an online transaction
- Visibility timeout: default 30 seconds, up to 12 hours.
- Long Pulling timeout is 20 seconds
Delay Period
- Messages in a Delay Queue remain invisible for duration of the delay period 0 second up to 15 mins.