CertNote/ Commute Study Notes
Roadmap
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
  • Week 1
    • 1.AWS from a Developer's Perspective: Regions, Infrastructure, and the Boundary of Responsibility
    • 2.The 4 Core Entities of IAM: User, Group, Role, Policy
    • 3.STS and Policy Conditions: The Deep World of Temporary Credentials
    • 4.AWS CLI and SDK: From Credential Chaining to SigV4
    • 5.Week 1 Review: The Chain of Trust Built by Infrastructure and IAM
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
    • 1.SQS: How a Single Queue Decouples a System
    • 2.SNS: Publish Once and Everyone Hears It
    • 3.Kinesis: A Log That Holds On to Flowing Data
    • 4.Step Functions and AppSync: Taking the Flow Out of the Code
    • 5.Week 11 Review: The Questions That Divide the Messaging Models
  • Week 12
  • Week 13
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
Linux Master 2 · 2급KAIT Linux Master - Level 2
SCS-C03 · SpecialtySecurity - Specialty
Linux Master 1 · 1급KAIT Linux Master - Level 1
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
SQLD · 개발자SQL Developer (SQLD)

© CertNote · 주간랩스

  • About
  • Changelog
  • Contact
  • Terms
  • Privacy
← DVA-C02/Week 11/Day 5

Based on the DVA-C02 exam guide·Report an error

DVA-C02· AssociateWeek 11 · Day 5~38 min read

Day 5 - Week 11 Review: The Questions That Divide the Messaging Models

The five services covered in Week 11 - SQS, SNS, Kinesis, Step Functions, and AppSync - all appear on the surface to "move data or work from one place to another." That is why the exam often asks in the form "which one fits this scenario?" Fragmentary memorization tends to wobble on comparisons like SQS vs. Kinesis, SNS vs. EventBridge, and Standard vs. Express. Instead of listing the five services again, this review reorganizes them around a few fundamental questions that divide them. Whatever scenario you meet, asking these questions in order narrows down the answer.

Four Questions That Divide the Models

Question 1: How many receivers get a message? (1:1 vs. 1:N)

This is the first fork that separates SQS and SNS.

  • 1:1 (one task = one handler) → SQS. A "work queue" like order processing or image conversion. A message is taken by one consumer and disappears once processed (point-to-point).
  • 1:N (one event → many reactions) → SNS (or EventBridge). A single order creation triggers inventory, payment, and notification at the same time. Pushed to all subscribers immediately upon publication (publish-subscribe).

Fan-out (SNS → multiple SQS), which combines the two, is the structure that gets "spread out 1:N while each consumer has a reliable buffer and retries" at once.

Question 2: Does the data disappear when consumed? (destructive read vs. retained log)

This is the most essential question that separates SQS and Kinesis.

  • Consume = delete → SQS. Once processed, it is done. No reprocessing or multiple consumption.
  • Retained even after reading (log) → Kinesis Data Streams. Multiple consumers read simultaneously at their own positions, and yesterday's data can be reprocessed (replayed) with new code. Consumers are responsible for their own position through checkpoints.

If you see "multiple analytics systems on the same stream at once," "reprocess past data after a bug fix," or "hundreds of thousands of events per second + ordering," it is Kinesis.

Question 3: Do I process it, or just deliver it? (Data Streams vs. Firehose)

This is the fork within Kinesis.

  • Process directly with code (real time, low latency) → Data Streams + Lambda/KCL.
  • Automatic loading to a destination (no code, 1-minute delay acceptable) → Firehose → S3/Redshift/OpenSearch/Splunk.

"Automatically save to S3," "Parquet conversion," or "serverless ETL" means Firehose. "Ultra-low-latency real time" means Data Streams.

Question 4: Do I need to wire the flow explicitly? (decoupling vs. orchestration)

  • Wiring steps together with order, branching, retries, and rollback → Step Functions. A multi-step business process that needs visibility and error handling.
  • Multiple backends' data in one query + real time → AppSync (GraphQL).

These four questions match the classic classification axes of messaging and integration: (1) point-to-point vs. pub/sub, (2) destructive read vs. log-based, (3) processing vs. delivery, (4) choreography vs. orchestration. Gregor Hohpe's Enterprise Integration Patterns (2003) and Jay Kreps's log-centric philosophy (2013) established these axes. AWS's five services are different coordinates on these universal axes. If instead of memorizing each service's characteristics you locate it by "which side of which axis is this service on," comparison questions turn into coordinate reading.

Key Numbers: Boundary Values at a Glance

ServiceItemValue
SQSMax message size1 MiB (raised from 256 KiB in August 2025. If exceeded, Extended Client → S3, 2 GB)
SQSRetention period60 seconds to 14 days (default 4 days)
SQSVisibility timeout0 to 12 hours (default 30 seconds)
SQSMessage delay0 to 15 minutes
SQS FIFOThroughput300 msg/s, batch 3,000, high throughput 70,000+
SNSMessage retentionNone (lost if delivery fails)
SNSSubscribers per topic12,500,000
KinesisShard write1 MB/s or 1,000 records/s
KinesisShard read (classic)2 MB/s shared / (EFO) 2 MB/s per consumer
KinesisRetention24 hours to 365 days
KinesisOn-Demand limits200 MB/s, 200,000 RPS
FirehoseMinimum latency60 seconds (Near Real-Time)
Step FunctionsStandard / Express1 year, exactly-once / 5 minutes, at-least-once

⚠️ Trap: These are three boundary values that are especially easy to confuse. (1) Firehose is not real time (minimum 60 seconds). If you see "real time," it is Data Streams. (2) SNS has no retention. For "prevent loss on delivery failure," insert SQS or use a subscription DLQ. (3) The Lambda-SQS visibility timeout is 6 times the function timeout. If you do not follow this, duplicate processing occurs.

Summary of Confusing Comparisons

ABKey difference
SQS StandardSQS FIFOUnlimited, no ordering, duplicates possible vs. 300/s, ordering, 5-minute dedup
SQSSNSPull, 1:1, retained vs. Push, 1:N, not retained
SNSEventBridgeSimple replicated distribution, attribute filters vs. rich event pattern routing, schemas
Kinesis Data StreamsSQSRetained log, multiple consumption, reprocessing vs. destructive read, single consumption
Data StreamsFirehoseDirect processing, real time vs. automatic loading, 60 seconds+
ClassicEnhanced Fan-OutShared 2 MB/s, polling vs. 2 MB/s per consumer, HTTP/2 push
SF StandardExpress1 year, exactly-once, expensive vs. 5 minutes, at-least-once, high throughput
.sync.waitForTaskTokenWait for a machine task to complete vs. wait for an external/human callback
AppSyncAPI GatewayGraphQL, multiple sources, built-in subscriptions vs. REST, single backend

The distinction between SNS and EventBridge is said to have grown in weight on recent exams. Both "send events to multiple targets," but their strengths differ.

  • SNS is strong at simple, high-speed replicated distribution (attribute-based filters, ultra-high throughput).
  • EventBridge is strong at rich routing (pattern matching over the entire event body, Schema Registry, SaaS integration, scheduling).
  • A rough rule of thumb: if it is "spray the same message to multiple queues/functions quickly," SNS; if it is "complex branching, transformation, and external SaaS integration depending on event content," EventBridge.
  • When the exam asks about "the canonical fan-out," SNS+SQS is the default answer, and for "content-based complex routing," it is EventBridge.

Failure Handling: A Different Safety Net per Service

How each service handles "failed messages/tasks" is a comparison point within the exam scope.

  • SQS: Exceeding maxReceiveCount sends it to a DLQ (same type to same type). Isolates poison messages.
  • SNS: Not retained, but a subscription DLQ (redrive) preserves messages that failed delivery.
  • Kinesis: Because ordering is preserved, a failed record blocks what comes after (head-of-line blocking). Mitigated with Lambda ESM's BisectBatchOnFunctionError, MaximumRetryAttempts, and failure destinations (SQS/SNS).
  • Step Functions: Per-state Retry (backoff) and Catch (error branching), compensating transactions (Saga).

📚 Case study: The exam can mix three kinds of DLQ. The SQS DLQ (queue message exceeds maxReceiveCount), the SNS subscription DLQ (subscriber delivery failure), and the Lambda DLQ (Lambda asynchronous invocation failure). Even though they are all "DLQ," the layer of failure each one catches differs. For example: "preserve messages that SNS failed to deliver to an HTTPS endpoint" → SNS subscription DLQ. "Lambda failed to process an asynchronous event" → Lambda DLQ (or Destinations). "An SQS message failed processing 3 times" → SQS DLQ. You need to first pin down "which stage's failure is this?" from the wording.

Quick Reference for Acronyms

AcronymFull name
SQS / SNSSimple Queue / Notification Service
DLQDead Letter Queue
KDS / KDFKinesis Data Streams / Firehose
KCL / KPLKinesis Client / Producer Library
EFOEnhanced Fan-Out
ESMEvent Source Mapping
FSMFinite State Machine (the foundation of Step Functions)
SagaDistributed transaction compensation pattern
APNs / FCMApple / Google mobile push
WALWrite-Ahead Log (the root of the log model)

📝 Practice Questions

Click a choice to reveal the answer and explanation.

Question 1

Payment transactions must be processed in per-customer order, without duplicates, exactly once. About 4,000 occur per second. What is an appropriate configuration?

Question 2

One S3 object upload must trigger three tasks - thumbnail generation, virus scanning, and search indexing - independently (the failure of one task must not affect the others). What is the most canonical pattern?

Question 3

You want to run real-time anomaly detection on a clickstream with Lambda while also archiving all the raw data to S3 for later analysis with Athena. What is an appropriate configuration?

Question 4

You are loading logs into S3 with Firehose and there is a complaint that "data arrives about a minute late." If sub-1-second real-time processing is mandatory, what should you do?

Question 5

While pushing directly to Lambda through SNS, notifications published while Lambda was briefly down were permanently lost. How do you secure durability?

Question 6

In a Kinesis stream, only a particular shard throws ProvisionedThroughputExceededException while other shards sit idle. What are the cause and the fix?

Question 7

You need to run multiple Lambdas in order, compensate (roll back) earlier steps upon a mid-way failure, and let operators trace the entire flow visually. What is an appropriate service?

Question 8

In a refund workflow, high-value cases must receive administrator approval, and approval can take several days. What is an appropriate configuration?

Question 9

A mobile app needs to fetch users (DynamoDB), orders (Lambda), and recommendations (OpenSearch) in one go on a single screen, and receive order status changes in real time. What is an appropriate service?

Question 10

A Lambda consumes an SQS queue, but the same message is processed in duplicate. The function timeout is 60 seconds. What is the most appropriate action?

Question 11

You want to preserve and analyze messages that SNS repeatedly failed to deliver to an HTTPS endpoint. What is an appropriate method?

Question 12

Three consumers must each read the same Kinesis stream with latency of tens of ms, and they must not take throughput from each other. What is the appropriate feature?

PreviousStep Functions and AppSync: Taking the Flow Out of the CodeWeek 11 · Day 4Next ECS and Fargate: What "Running Containers Without Servers" Really MeansWeek 12 · Day 1

Official references

  • DVA-C02 official exam page(opens in a new tab)
  • Amazon SQS documentation(opens in a new tab)
  • Amazon SNS documentation(opens in a new tab)
  • AWS Lambda documentation(opens in a new tab)
  • Amazon Data Firehose documentation(opens in a new tab)
  • Amazon Kinesis documentation(opens in a new tab)

On this page

  • Four Questions That Divide the Models
  • Question 1: How many receivers get a message? (1:1 vs. 1:N)
  • Question 2: Does the data disappear when consumed? (destructive read vs. retained log)
  • Question 3: Do I process it, or just deliver it? (Data Streams vs. Firehose)
  • Question 4: Do I need to wire the flow explicitly? (decoupling vs. orchestration)
  • Key Numbers: Boundary Values at a Glance
  • Summary of Confusing Comparisons
  • Failure Handling: A Different Safety Net per Service
  • Quick Reference for Acronyms
  • Week 11 Review Practice Questions