# Messaging: SQS & SNS — AWS Fundamentals: Core Services for Cloud Beginners

Source: https://www.geekswithgeeks.com/en/aws/aws-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.

```bash
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

**Quiz:** Which service fans one message out to many subscribers?

- [x] SNS
- [ ] SQS
- [ ] S3
- [ ] IAM

*Answer:* SNS. SNS is publish/subscribe; SQS is a queue for consumers to poll.
