Amazon Simple Notification Service (Amazon SNS) Documentation
Standard topics can be used in many scenarios, as long as your application can process messages that arrive more than once and out of order, for example: fanning out messages to media encoding, fraud detection, tax calculation, search index, and critical alerting systems.
Best-effort ordering: Occasionally, messages might be delivered in an order different from which they were published.
FIFO topics are designed to enhance messaging between applications when the order of operations and events is critical, or where duplicates can't be tolerated, for example: fanning out messages to bank transaction logging, stock monitoring, flight tracking, inventory management, and price update systems.
Strict ordering: The order in which messages are published and delivered is preserved (i.e. first-in-first-out).
Best-effort deduplication: A message is delivered at least once, but occasionally more than one copy of a message is delivered.
Multiple subscription types: Messages can be sent to a variety of endpoints (Amazon SQS, Amazon Kinesis Data Firehose streams, AWS Lambda, HTTPS webhooks, SMS, mobile push, and email).
Deduplication: Duplicate messages aren't delivered.
SQS FIFO subscriptions: Messages can be sent to FIFO queues.
Event sources and destinations
Event-driven computing is a model in which subscriber services perform work in response to events triggered by publisher services. This paradigm can be applied to automate workflows while decoupling the services that collectively and independently work to fulfill these workflows.
Amazon SNS is an event-driven computing hub that has native integration with some AWS event sources and event destinations. For more information, see Amazon SNS event sources and destinations in the Amazon SNS Developer Guide.
Message filtering empowers the subscriber to create a filter policy, so that it only gets the notifications it is interested in, as opposed to receiving every single message posted to the topic. Additionally, you may monitor your Amazon SNS message filtering activity with Amazon CloudWatch and manage Amazon SNS filter policies with AWS CloudFormation.
Message fanout occurs when a message is sent to a topic and then replicated and pushed to multiple endpoints. Fanout provides asynchronous event notifications, which in turn allow for parallel processing.
Amazon SNS uses a number of strategies that work together to provide message durability. To start, published messages are stored across multiple, geographically-separated servers and data centers. If a subscribed endpoint isn't available, Amazon SNS executes a message delivery retry policy. To preserve any messages that aren't delivered before the delivery retry policy ends, you can create a dead-letter queue. You can also subscribe Amazon Kinesis Data Firehose delivery streams to SNS topics, which allows messages to be sent to durable endpoints such as Amazon S3 buckets or Amazon Redshift tables.
Amazon SNS is designed to provide encrypted topics to protect your messages from unauthorized and anonymous access. When you publish messages to encrypted topics, Amazon SNS immediately encrypts your messages. The encryption takes place on the server, using a 256-bit AES-GCM algorithm and a customer master key (CMK) issued with AWS Key Management Service (KMS). The messages are stored in encrypted form, and decrypted as they are delivered to subscribing endpoints (Amazon SQS queues, Amazon Kinesis Data Firehose streams, AWS Lambda functions, HTTP/S webhooks).
Amazon SNS supports VPC Endpoints (VPCE) via AWS PrivateLink. You can use VPC Endpoints to privately publish messages to Amazon SNS topics, from an Amazon Virtual Private Cloud (VPC), without traversing the public internet.
When you use AWS PrivateLink, you don’t need to set up an Internet Gateway (IGW), Network Address Translation (NAT) device, or Virtual Private Network (VPN) connection. You don’t need to use public IP addresses, either.
Amazon SNS connects to Amazon Kinesis Data Firehose, allowing message storage in services such as Amazon S3 or Amazon Redshift.
Amazon SNS mobile notifications can fanout mobile push notifications to iOS, Android, Fire OS, Windows and Baidu-based devices. Mobile notifications can be triggered from user driven actions within an application or from business logic within the cloud.
SMS & email messages
Amazon SNS supports sending text messages at scale to many countries with redundancy across SMS providers. Additionally, Amazon SNS supports email (SMTP) via SNS topics.
For additional information about service controls, security features and functionalities, including, as applicable, information about storing, retrieving, modifying, restricting, and deleting data, please see https://docs.aws.amazon.com/index.html. This additional information does not form part of the Documentation for purposes of the AWS Customer Agreement available at http://aws.amazon.com/agreement, or other agreement between you and AWS governing your use of AWS’s services.