Service | What it does | Example Use Cases |
---|---|---|
SQS | Messaging queue; store and forward patterns | Building distributed / decoupled applications |
SNS | Set up, operate, and send notifications from the cloud (Pub/Sub) | Send email notification when CloudWatch alarm is triggered |
Step Functions | Out-of-the-box coordination of AWS service components with visual workflow | Order processing workflow, long-running processes |
SWF | Need to support external processes or specialized execution logic (human-enabled workflows) | Order fulfillment system, procedural requests |
Amazon MQ | Managed message broker service for Apache ActiveMQ and RabbitMQ | Migrate existing message queues to AWS (supports industry-standard APIs/protocols) |
Amazon Kinesis | Collect, process, and analyze streaming data | Collect data from IoT devices for later processing |
Characteristic | Standard Queue | FIFO Queue |
---|---|---|
Throughput | Nearly unlimited TPS. | High throughput: Up to 300 messages/sec (3,000 with batching). |
Ordering | Best-effort ordering (messages generally delivered in same order, but can be out of order). | Strictly preserved (First-In-First-Out). |
Delivery Guarantee | At-Least-Once Delivery (occasionally more than one copy). | Exactly-Once Processing (message delivered once, remains until processed/deleted; no duplicates). |
Deduplication | No native deduplication. | Built-in deduplication (via MessageDeduplicationId or content-based SHA-256 hash). Deduplication interval is 5 minutes. |
Message Groups | Not applicable. | Supports Message Groups (via MessageGroupId ) for ordered processing within a group. Messages with same Group ID delivered to one consumer at a time. |
Use Case | High throughput, general purpose. | Order-sensitive operations (e.g., financial transactions, inventory updates). |
ReceiveMessageWaitTime
= 0.ReceiveMessageWaitTime
> 0 (up to 20 seconds).ReceiveCount
exceeds maxReceiveCount
.CreateQueue
: Creates a new standard or FIFO queue.DeleteQueue
: Deletes a queue (successful even if queue doesn't exist).PurgeQueue
: Deletes all messages in a queue.SendMessage
: Delivers a message to a queue.ReceiveMessage
: Retrieves 1-10 messages from a queue. Use WaitTimeSeconds
for long polling.DeleteMessage
: Deletes a specific message using its ReceiptHandle
(NOT MessageId
!).ChangeMessageVisibility
: Changes the visibility timeout of a message.SendMessageBatch
, DeleteMessageBatch
, ChangeMessageVisibilityBatch
(to reduce costs/requests).