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.