Lesson 23 / 28
Messaging: SQS & SNS
Decouple services with SQS queues and fan out notifications with SNS topics, and know when to use each.
Queue versus topic
SQS is a queue: producers send messages and consumers poll and process them at their own pace, which absorbs traffic spikes. SNS is publish/subscribe: one message is pushed to many subscribers such as SQS queues, Lambda functions, email or HTTP endpoints.
Send and receive
Consumers must delete a message after processing; otherwise it reappears after the visibility timeout.
aws sqs send-message --queue-url $Q --message-body '{"orderId":"o1001"}'
aws sqs receive-message --queue-url $Q --wait-time-seconds 10
aws sqs delete-message --queue-url $Q --receipt-handle "$HANDLE"Attach a dead-letter queue to catch messages that keep failing, and make consumers idempotent because standard queues deliver at least once.
Quick check
Quick check: Which service fans one message out to many subscribers?
- SNS
- SQS
- S3
- IAM
Answer
SNS — SNS is publish/subscribe; SQS is a queue for consumers to poll.