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 |