Simple Queue Service – SQS
Amazon SQS is a highly accessible queue system
A queue is a temporary storage place for messages that are awaiting processing. It acts as a buffer between component producers and consumers.
SQS is a message-queue service that distributed applications use to exchange messages using a polling model. It can be used to decouple the sending and receiving components.
Amazon SQS is easily managed and requires very little configuration.
Hosted queue that stores messages in transit between applications.
It allows for fault-tolerant, loosely coupled, flexibility in distributed components of applications to send and receive without each component having to be simultaneously available
Helps build distributed applications with decoupled components
Supports the HTTP over SSL (HTTPS), and Transport Layer Security(TLS) protocols for security
SQS offers two types of Queues: Standard and FIFOSQS-FIFO Queue Features
Refer to Blog Post – SQS FiFO Queue
SQS Standard Queue Features
Redundant infrastructure offers reliable and scalable hosted queues to store messages
It is designed to deliver messages and be always available
Allows you to store messages in a fail-safe queue
Messages can be accessed concurrently
Delivery at-Least-Once ensures that each message is delivered at least once
Stores copies of messages on multiple servers to ensure redundancy and high availability
You might receive duplicate copies of messages if the servers that store a copy are unavailable when you delete or receive the message. The copy of the message will not be deleted from the unavailable server.
Applications should be able to handle duplicate messages. They should also be able to process the same message multiple times without being affected.
Message AttributesSQS messages can contain up to 10 metadata elements
Take the form of triples of name-type and value
It can be used to seperate the body of a message and the metadata that describes it.
The applications can process and store information faster and more efficiently because they don’t need to examine every message before understanding how it should be processed.
The behavior of message samplingbehavior in retrieving messages from the queue is dependent on whether short (standard), default, or long polling are used
Short polling samples only a subset (based on a weighted randomly distributed distribution) and returns messages only from those servers.
It is possible that a receive request does not return all messages in the queue. A subsequent receive request would return the message
Long polling allows you to request the message for as long as you need it. It returns the message as soon as it is available, reducing the time and cost of waiting.
Long polling does not return a response until a message is received in the message queue or the poll time out.
It is easy to retrieve messages from the SQS queue at a reasonable cost as soon as they are available.
SQS can be reduced in cost by reducing the number of empty receipts
BatchingSQS lets you send, receive, and delete batches. This allows you to group up to 10 messages into one batch, while only charging for one message
This reduces costs and increases throughput.
Configurable settings for each queueAll queues do not have to be the same
Although Order makes every effort to preserve order in messages, it does not guarantee first in and first out delivery of messages
This can be done by including sequence information in the message and ordering on the client’s side
Loose couplingremoves tight coupling between components
Allows data to be moved between components of different applications without losing messages or requiring that each component be always available.
Multiple writers and readers support multiple writers and readers interacting with the same queue at the same time