General Amazon SNS Concepts
Amazon SNS is a web service that is used to setup, operate and send notifications from the cloud.
Push notifications can go to Apple, Google, Fire OS, and Windows devices as well as Android devices in China with Baidu Cloud Push.
SNS can also send notifications via SMS text message, email, SQS queues or to any HTTP endpoint.
SNS notifications can also trigger Lambda functions.
Inexpensive, pay-as-you-go model with no upfront costs.
Pub-sub model whereby users subscribe to topics.
Publisher systems can fan out messages to a large number of subscriber endpoints:
- Amazon SQS queues.
- AWS Lambda functions.
- HTTP/S webhooks.
- Mobile push.
Sending messages to many receivers:
- The event producer only sends message to one SNS topic.
- As many event receivers (subscriptions) as we want listen for notifications.
- Each subscriber will get all the messages.
- Can filter messages.
- Up to 10,000,000 subscriptions per topic.
- Limit of 100,000 topics.
Multiple recipients can be grouped using Topics.
A topic is an “access point” for allowing recipients to dynamically subscribe for identical copies of the same notification.
One topic can support deliveries to multiple endpoint types.
All messages are stored redundantly across multiple availability zones.
Instantaneous, push-based delivery.
Simple APIs and easy integration with applications.
Flexible message delivery over multiple transport protocols.
SNS + SQS Fan Out
You can subscribe one or more Amazon SQS queues to an Amazon SNS topic from a list of topics available for the selected queue.
Amazon SQS manages the subscription and any necessary permissions.
When you publish a message to a topic, Amazon SNS sends the message to every subscribed queue.
SNS topic pushes once to multiple SQS queues.
No data loss.
Ability to add receivers later.
SQS allows for delayed processing.
SQS allows for retries of work.