2.5 Decoupling with SQS, SNS, and EventBridge

Key Takeaways

  • SQS is a pull-based queue (one message, one consumer) with at-least-once delivery on Standard and exactly-once processing on FIFO.
  • SNS is push-based pub/sub that fans one message out to many subscribers (SQS, Lambda, HTTP, email, SMS, Firehose, mobile push).
  • The SNS-to-multiple-SQS fan-out pattern is the single most-tested decoupling architecture on SAA-C03.
  • SQS FIFO supports 300 msg/sec without batching, 3,000 with batching, and up to 70,000/sec with high-throughput mode in supported Regions.
  • Key SQS controls: visibility timeout (default 30s, max 12h), message retention (default 4 days, max 14), long polling (up to 20s), and dead-letter queues via maxReceiveCount.
Last updated: June 2026

Quick Answer: SQS = pull-based queue, one message consumed once. SNS = push-based pub/sub, one message to many subscribers. EventBridge = serverless event bus with content-based rules and 20+ AWS sources/targets. The SNS → multiple SQS fan-out is the exam's favorite decoupling pattern.

Why Decouple?

In a tightly coupled system, a slow or failed downstream component blocks or breaks the producer. Inserting a queue or bus between them buys resilience (consumer can be down and messages wait), elasticity (each side scales independently), and spike absorption (a queue buffers a burst the consumers drain later). Domain 2 expects you to recognize a coupling problem and reach for SQS, SNS, or EventBridge.

Amazon SQS

SQS (Simple Queue Service) is a fully managed pull queue. Consumers poll for messages, process them, and delete them.

FeatureStandardFIFO
ThroughputNearly unlimited300/s, 3,000/s batched, up to 70,000/s high-throughput
OrderingBest-effortStrict, per message group
DeliveryAt-least-once (dupes possible)Exactly-once processing
Name suffixAnyMust end .fifo
Use caseMax throughputOrder/payment processing

Core controls to memorize:

ConceptDetail
Visibility timeoutHides a received message from others; default 30s, max 12h
Long pollingWait up to 20s for a message — fewer empty receives, lower cost
Message retention1 min to 14 days, default 4 days
Max message size256 KB (use S3 + Extended Client for larger)
Dead-Letter Queue (DLQ)Captures messages exceeding maxReceiveCount
Delay queueHides new messages 0–15 minutes

A classic resilient pattern: a CloudWatch alarm on ApproximateNumberOfMessagesVisible drives an Auto Scaling group of consumers up as the backlog grows and down as it drains.

Amazon SNS and the Fan-Out Pattern

SNS (Simple Notification Service) is push-based pub/sub. A producer publishes once to a topic, and SNS pushes to every subscriber.

SubscriberTypical use
SQSDurable fan-out to independent queues
LambdaServerless processing
HTTP/HTTPSWebhooks
Email / SMSHuman alerts
Kinesis Data FirehoseArchive to S3/Redshift
Mobile pushiOS/Android notifications

The #1 Decoupling Pattern: SNS → multiple SQS

Publish one message to an SNS topic; SNS fans it out to several SQS queues, each with its own independent consumer. Benefits: one event triggers many workflows, each consumer fails or scales independently, queues buffer slow consumers, and adding a new workflow is just adding a subscription. Message filtering on subscriptions lets each queue receive only the events it cares about. SNS FIFO topics pair with SQS FIFO queues for ordered, deduplicated fan-out.

On the Exam: "One event must reach several services that each process it independently" → SNS + SQS fan-out, not one shared queue (a shared queue delivers each message to only one consumer).

Amazon EventBridge

EventBridge is a serverless event bus that routes events by rule from many sources to many targets.

FeatureEventBridgeSNS
SourcesAWS services, custom apps, SaaS partnersYour apps only
RoutingContent-based event-pattern rulesTopic-based (all subscribers get all)
Targets20+ (Lambda, SQS, Step Functions, API Gateway, Kinesis)SQS, Lambda, HTTP, email, SMS
Schema registryYesNo
Archive & replayYesNo
SaaS integrationYes (Datadog, Shopify, Zendesk)No

Choosing Between Them

  • Simple buffer between two components → SQS.
  • One message to many independent consumers → SNS + SQS fan-out.
  • React to AWS service events or filter by content → EventBridge.
  • Third-party SaaS events or replay of past events → EventBridge.
  • Strict ordering and dedup → SQS FIFO (with SNS FIFO for fan-out).

Reliability Mechanics That Show Up on the Exam

Decoupling only adds resilience if you tune a few controls correctly.

  • Visibility timeout vs. processing time: the visibility timeout must exceed the time a consumer needs to process and delete a message. If processing runs longer, the message reappears and a second consumer processes it again (duplicate work). The fix is to raise the timeout or extend it dynamically with ChangeMessageVisibility — a very common exam trap ("messages are processed twice").
  • Long polling vs. short polling: short polling samples a subset of servers and returns immediately, causing empty receives and extra cost; long polling (WaitTimeSeconds up to 20) waits for a message, cutting empty responses and API charges. Prefer long polling almost always.
  • DLQ + redrive: set a DLQ with a maxReceiveCount so poison-pill messages move aside after N failed attempts; later, redrive them back once the bug is fixed.
  • Idempotency: because SQS Standard is at-least-once, consumers must be idempotent (safe to process the same message twice). FIFO removes duplicates only within the 5-minute dedup window.

SQS vs. Kinesis, and Ordering Choices

A frequent confusion is SQS versus Kinesis Data Streams. SQS deletes a message once consumed (work-queue semantics, one consumer per message); Kinesis is an ordered, replayable stream where many consumers each read the full record sequence and records persist for up to 365 days. Choose Kinesis for real-time analytics, ordered per-shard processing, and replay; choose SQS for decoupling and load leveling.

NeedService
Decouple producer/consumer, buffer spikesSQS Standard
Strict order + exactly-once, low/moderate rateSQS FIFO
One event to many independent workflowsSNS + SQS fan-out
AWS/SaaS event routing with content filtersEventBridge
Ordered, replayable stream for analyticsKinesis Data Streams

The recurring exam theme: a single SQS queue gives each message to one consumer; to deliver the same message to many independent consumers you need SNS fan-out or EventBridge, and to keep ordered, replayable history you need FIFO or Kinesis rather than a Standard queue.

Test Your Knowledge

An order event must be delivered to three services — inventory, shipping, and notifications — each processing the event independently and at its own pace. Which architecture is correct?

A
B
C
D
Test Your Knowledge

A payments pipeline must process messages in strict order with no duplicate processing. Which SQS configuration is required?

A
B
C
D
Test Your Knowledge

What is the purpose of an SQS dead-letter queue (DLQ)?

A
B
C
D