29.07.2020 Views

sqs-dg-2009-02-01

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Amazon Simple Queue Service Developer Guide

Properties of Distributed Queues

The following table lists the API actions to use.

To do this...

Create a queue

List your queues

Delete a queue

Use this action

CreateQueue

ListQueues

DeleteQueue

Properties of Distributed Queues

The following information can help you design your application to work with Amazon SQS correctly.

Message Order

SQS makes a best effort to preserve order in messages, but due to the distributed nature of the queue,

we cannot guarantee you will receive messages in the exact order you sent them. If your system requires

that order be preserved, we recommend you place sequencing information in each message so you can

reorder the messages upon receipt.

At-Least-Once Delivery

SQS stores copies of your messages on multiple servers for redundancy and high availability. On rare

occasions, one of the servers storing a copy of a message might be unavailable when you receive or

delete the message. If that occurs, the copy of the message will not be deleted on that unavailable server,

and you might get that message copy again when you receive messages. Because of this, you must

design your application to be idempotent (i.e., it must not be adversely affected if it processes the same

message more than once).

Message Sample

When you retrieve messages from the queue, SQS samples a subset of the servers (based on a weighted

random distribution) and returns messages from just those servers. This means that a particular receive

request might not return all your messages. Or, if you have a small number of messages in your queue

(less than 1000), it means a particular request might not return any of your messages, whereas a

subsequent request will. If you keep retrieving from your queues, SQS will sample all of the servers, and

you will receive all of your messages.

The following figure shows messages being returned after one of your system components makes a

receive request. SQS samples several of the servers (in gray) and returns the messages from those

servers (Message A, C, D, and B). Message E is not returned to this particular request, but it would be

returned to a subsequent request.

API Version 2009-02-01

5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!