# Amazon SNS

> Fan-out from one publisher to many subscribers. Not my ingestion path at high volume.

- Verdict: Use when it fits
- Vendor: AWS
- Layer: [APIs, queues and events](https://cloudlesslabs.com/stack/layers/api-events.md). Job: Pub/sub fan-out
- Last reviewed: 18 October 2026, by Nicolas Dao (Cloudless Labs, Sydney)
- Web page: https://cloudlesslabs.com/stack/aws-sns/. The whole stack in one file: https://cloudlesslabs.com/stack/brief.md

Good for fan-out. For ingestion I now put SQS in the path so Lambda can batch.

## Use it when

- One event must reach several queues, functions or emails.

## Don't use it when

- High-volume ingestion straight into Lambda (one invocation per message). Put SQS in the path and batch.

## In my words: what hurts

- I've used it for data ingestion, especially IoT, and don't trust it at very high message rates.

## Gotchas, with fixes

- **Gotcha:** SNS → Lambda invokes a function per message: at IoT volumes that's millions of tiny invocations.
  **Fix:** SNS → SQS → Lambda with batching, or skip SNS and write straight to SQS.

## Provisioning

Official Pulumi package · Official Terraform provider

@pulumi/aws sns.Topic and TopicSubscription.

## Instead, consider

- [Amazon SQS](https://cloudlesslabs.com/stack/aws-sqs/index.md): Ingestion and anything that needs batching.
- [Amazon EventBridge](https://cloudlesslabs.com/stack/aws-eventbridge/index.md): Routing by event content.

## Worked examples

- [IoT ingestion into Postgres](https://cloudlesslabs.com/stack/guides/iot-ingestion/index.md): 5,000 devices send a reading every minute. Where does the money go?

## Where it fits

- [Event-driven plumbing](https://cloudlesslabs.com/stack/use-cases/events.md): pick 3. Fan-out: one event to several queues or functions.
- [Device and IoT data](https://cloudlesslabs.com/stack/use-cases/iot.md): don't. SNS invokes Lambda once per message: at device volumes that's millions of tiny invocations. SQS lets Lambda take them in batches. Instead: [Amazon SQS](https://cloudlesslabs.com/stack/aws-sqs/index.md).

## Related

- [APIs, queues and events](https://cloudlesslabs.com/stack/layers/api-events.md): every tool in this layer, with its verdict
- [The whole stack in one file](https://cloudlesslabs.com/stack/brief.md): every use case and tool, for questions that span many
- [Map of every Markdown file on cloudlesslabs.com, with what each one answers](https://ask.cloudlesslabs.com)
