Amazon Simple Notification Service
View on GitHubAmazon Simple Notification Service
Amazon Simple Notification Service is a fully managed publish/subscribe messaging service that enables event-driven and notification-based architectures. It operates by accepting published messages to topics and delivering them (fan-out) to subscribed endpoints using push-based protocols such as HTTP/S, AWS Lambda, Amazon SQS, email, SMS, and mobile push. It normally sits in the event-distribution layer of an AWS architecture to notify systems, users, and downstream processing components.
🗂 Resource Category
Application Integration
🧠 Exam Memory Hook
Think: "Publishers send messages + fan-out to multiple subscribers = Amazon Simple Notification Service"
📖 Ownership
Classification: AWS Managed Service
AWS responsibilities: AWS operates and scales the SNS control plane and messaging platform, manages the underlying physical infrastructure and networking, secures and patches the managed service platform and runtime, maintains service availability and internal routing, and provides integrations to supported AWS endpoints.
Customer responsibilities: The customer configures topics, subscriptions, access policies and IAM permissions, selects delivery protocols, configures encryption keys (AWS KMS) if used, supplies message content and attributes, manages subscriber endpoints and consumer application logic, monitors delivery metrics and errors, and implements application-level retries or remediation where required.
Patching responsibilities: AWS patches and maintains the underlying physical infrastructure, hypervisor where applicable, operating systems, and the managed runtime/service platform used by SNS; the customer is responsible for patching guest operating systems and application runtimes for any subscriber endpoints they manage, as well as application libraries, dependencies, and deployed code that consume or produce messages.
🏗 Typical Architecture
💡 Top 5 Features
- Topic-based publish/subscribe messaging that fans out a single published message to multiple subscribers.
- Native push delivery to multiple endpoint protocols including HTTP/S, AWS Lambda, Amazon SQS, email, SMS, and mobile push.
- Subscription filter policies that allow subscribers to receive only messages matching attribute-based filters.
- Message attributes support to attach metadata and enable selective routing or filtering without modifying message payloads.
- Access control via IAM and resource policies and optional server-side encryption using AWS KMS for topic-level encryption.
✅ Top 5 Use Cases
- Fan-out notifications from a single producer to multiple processing systems, for example triggering Lambda functions and queuing work in SQS for downstream processors.
- Sending operational alerts and on-call notifications (email, SMS, mobile push) from monitoring or CI/CD systems to recipients and incident workflows.
- Decoupling microservices where one service publishes events to a topic and multiple independent services subscribe to relevant events.
- Delivering user-facing notifications such as transactional SMS or email where a service needs simple push delivery to end-user channels.
- Integrating with event-driven pipelines where SNS forwards events to Amazon SQS or AWS Lambda for asynchronous processing and scaling.
🏗 Architecture Placement
SNS typically sits in the event-distribution layer of a regional AWS account and receives messages from applications, services, or event sources; it routes or pushes those messages to subscribed endpoints such as Lambda functions, SQS queues, HTTP/S endpoints, email, or SMS. It is configured at the account and regional level and commonly integrates with monitoring systems and other AWS services to trigger workflows or alert users. Placement and endpoint choices depend on required durability, ordering, and routing semantics.
🎯 Commonly Used With
- AWS Lambda
- Amazon SQS
- Amazon CloudWatch
- AWS Identity and Access Management
- Amazon EventBridge
🌍 5 Real-World Examples
- A banking system publishes transaction events to an SNS topic so fraud-detection Lambda functions, auditing queues, and on-call teams all receive the same event for parallel processing and notification.
- An e-commerce platform publishes order status updates to SNS so mobile push, email, and downstream fulfillment services receive updates without tight coupling.
- A healthcare monitoring application sends critical patient alerts to an SNS topic that forwards to SMS for clinicians and to Lambda for automated escalation workflows.
- A media processing pipeline publishes job completion events to SNS so transcoding queues, analytics processors, and notification services receive the event concurrently.
- An IoT gateway publishes device state changes to SNS so different backend services (queuing, real-time processing, and alerting) can subscribe and act independently.
🎓 AWS Exam Clues
- Use SNS when you need simple publish/subscribe fan-out to multiple endpoints and push-based delivery.
- Choose SNS for notifying users or systems across multiple protocols; choose Amazon SQS when strict durable queueing and pull semantics are required.
- Subscription filter policies are used when you need subscribers to receive only a subset of published messages based on attributes.
- Consider endpoint reliability and delivery semantics (push retries, potential transient failures) when selecting SNS for critical workflows.
- Security decisions typically involve IAM resource policies, topic policies, and optional KMS encryption for message protection at rest.
📝 Quick Revision
Amazon Simple Notification Service is a managed pub/sub service that fans out published messages to multiple subscribers using push protocols. Use it for notifications and decoupling microservices, and consider delivery reliability, endpoint health, access control, and whether durable queueing (SQS) or advanced routing (EventBridge) better fits the workload.
🏷 Keywords
pub/sub • topic • subscription • fan-out • push delivery • HTTP/S endpoints • AWS Lambda integration • Amazon SQS integration • SMS notifications • email notifications • subscription filter policy • server-side encryption