AWS SQS & SNS β Messaging Services
AWS SQS & SNS β Messaging Services
Section titled βAWS SQS & SNS β Messaging ServicesβAWS provides two core messaging services for decoupling application components:
- SQS (Simple Queue Service) β Message queue for point-to-point communication
- SNS (Simple Notification Service) β Pub/sub topic-based messaging for fan-out
In Azure terms: SQS β Azure Storage Queues / Azure Service Bus Queue, SNS β Azure Service Bus Topics / Event Grid
SQS β Simple Queue Service
Section titled βSQS β Simple Queue ServiceβSQS is a fully managed message queue that decouples producers from consumers. Producers send messages; consumers poll and process them at their own pace.
Queue Types
Section titled βQueue Typesβ| Type | Description |
|---|---|
| Standard Queue | At-least-once delivery, best-effort ordering, nearly unlimited throughput |
| FIFO Queue | Exactly-once delivery, strict ordering, up to 3,000 messages/second |
Key SQS Concepts
Section titled βKey SQS Conceptsβ| Concept | Description |
|---|---|
| Message | The data payload (up to 256 KB; use S3 + pointer for larger) |
| Visibility Timeout | How long a received message is hidden from other consumers (default 30s) |
| Dead Letter Queue (DLQ) | Receives messages that failed processing after N attempts |
| Message Retention | 1 minute to 14 days (default 4 days) |
| Long Polling | Consumer waits up to 20s for a message β reduces empty responses and cost |
| Delay Queue | Delay delivery of new messages by 0β900 seconds |
SQS Message Lifecycle
Section titled βSQS Message LifecycleβProducer β Queue β Consumer picks up (message hidden) β Processing succeeds β Delete message β Processing fails Γ N β Move to DLQSQS CLI Examples
Section titled βSQS CLI Examplesβ# Create a standard queueaws sqs create-queue --queue-name my-queue
# Send a messageaws sqs send-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/my-queue \ --message-body "Hello from SQS"
# Receive messages (long poll)aws sqs receive-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/my-queue \ --wait-time-seconds 10 \ --max-number-of-messages 5
# Delete a message after processingaws sqs delete-message \ --queue-url https://sqs.us-east-1.amazonaws.com/123456789/my-queue \ --receipt-handle "abc123..."SNS β Simple Notification Service
Section titled βSNS β Simple Notification ServiceβSNS is a fully managed pub/sub messaging service. Publishers send messages to a Topic, and SNS fans out to all subscribers simultaneously.
SNS Subscribers
Section titled βSNS Subscribersβ| Subscriber Type | Use Case |
|---|---|
| SQS | Fan out to multiple queues for parallel processing |
| Lambda | Trigger serverless functions |
| HTTP/HTTPS | Webhooks to external services |
| Email / Email-JSON | Notifications to people |
| SMS | Text messages to phones |
| Mobile Push | iOS (APNs), Android (FCM), Fire OS notifications |
| Amazon Kinesis Data Firehose | Stream data to S3, Redshift, etc. |
Fan-Out Pattern (SNS + SQS)
Section titled βFan-Out Pattern (SNS + SQS)βOrder Service β publishes to SNS Topic βββ SQS Queue β Inventory Lambda (update stock) βββ SQS Queue β Email Lambda (send confirmation) βββ SQS Queue β Analytics Lambda (log event)This pattern decouples services while ensuring each consumer gets every message.
SNS CLI Examples
Section titled βSNS CLI Examplesβ# Create a topicaws sns create-topic --name my-topic
# Subscribe an emailaws sns subscribe \ --topic-arn arn:aws:sns:us-east-1:123456789:my-topic \ --protocol email \ --notification-endpoint user@example.com
# Subscribe an SQS queueaws sns subscribe \ --topic-arn arn:aws:sns:us-east-1:123456789:my-topic \ --protocol sqs \ --notification-endpoint arn:aws:sqs:us-east-1:123456789:my-queue
# Publish a messageaws sns publish \ --topic-arn arn:aws:sns:us-east-1:123456789:my-topic \ --message "Order #1234 placed" \ --subject "New Order"SQS vs SNS β When to Use Which
Section titled βSQS vs SNS β When to Use Whichβ| Scenario | Use |
|---|---|
| Worker processing jobs from a queue | SQS |
| Fan out one event to many systems | SNS |
| Fan out + durable queuing per consumer | SNS β SQS (fan-out pattern) |
| Email/SMS alerts | SNS |
| Guaranteed exactly-once delivery + ordering | SQS FIFO |
| Rate limiting / buffering before processing | SQS |
AWS SQS/SNS vs Azure Equivalents
Section titled βAWS SQS/SNS vs Azure Equivalentsβ| Feature | AWS | Azure |
|---|---|---|
| Basic queue | SQS Standard | Azure Storage Queue |
| Enterprise queue | SQS FIFO | Azure Service Bus Queue |
| Pub/Sub topics | SNS | Azure Service Bus Topics |
| Event-driven routing | SNS + EventBridge | Azure Event Grid |
| Streaming (high-throughput) | Amazon Kinesis | Azure Event Hubs |