Jeff’s Note #
Unlike generic exam dumps, ADH analyzes this scenario through the lens of a Real-World Lead Developer.
For DVA-C02 candidates, the confusion often lies in distinguishing when to use SNS, SQS, or EventBridge Pipes for message ordering especially when sending SMS notifications. In production, this is about knowing exactly how FIFO queues guarantee strict ordering and exactly-once processing versus SNS topics or Firehose not supporting these features. Let’s drill down.
The Certification Drill (Simulated Question) #
Scenario #
A financial technology startup, TradeFlow Inc., is building a new application that allows customers to execute stock trades through their mobile devices. The development team needs to implement a mechanism to send SMS confirmations to users exactly when trades complete. The messages must be delivered strictly in the order users place trades, and duplicate confirmations must never be sent.
The Requirement #
Design a messaging solution that (1) delivers SMS notifications in user trade order, and (2) prevents duplicate message delivery.
The Options #
- A) Configure the app to publish trade confirmations to an Amazon Kinesis Data Firehose delivery stream. Set the destination as each user’s mobile phone number embedded in the message.
- B) Create an Amazon Simple Queue Service (SQS) FIFO queue. Use the SendMessage API to add trade confirmation messages to the queue ensuring ordering and deduplication. Then process the queue to send SMS messages using user phone info in each message.
- C) Set up an Amazon EventBridge Pipes pipe with the trading app as the source and each user’s phone number as the target. Configure the pipe to forward events directly to users.
- D) Create an Amazon Simple Notification Service (SNS) FIFO topic. Publish notifications via the AWS SDK to this FIFO SNS topic to send SMS messages to users.
Google adsense #
leave a comment:
Correct Answer #
B.
Quick Insight: The Developer Imperative #
The key here is that only Amazon SQS supports FIFO queues with exact message ordering and deduplication semantics out of the box for messaging workflows. SNS FIFO topics don’t exist (SNS does not support FIFO), Firehose cannot send SMS or preserve strict message order, and EventBridge Pipes do not guarantee ordering or deduplication for SMS delivery yet. Using SQS FIFO with the SendMessage API ensures exactly-once message processing and preserved order.
Content Locked: The Expert Analysis #
You’ve identified the answer. But do you know the implementation details that separate a Junior from a Senior?
The Expert’s Analysis #
Correct Answer #
Option B
The Winning Logic #
Amazon SQS FIFO queues are the only managed service among these options that inherently guarantees strict ordering and exactly-once delivery. By sending trade confirmation messages to a FIFO queue, developers can attach message group IDs (e.g., user-specific) to ensure intra-user message ordering. The queue deduplication ID parameter prevents retries from causing duplicate messages. After the message lands in the queue, a processing Lambda or consumer reads from SQS and uses the AWS SDK (e.g., Amazon SNS or Amazon Pinpoint) to deliver SMS messages.
The Trap (Distractor Analysis) #
- Option A (Firehose): Firehose is optimized for streaming ingest into data stores (S3, Redshift) and does not support SMS delivery or message ordering at the user level.
- Option C (EventBridge Pipes): Pipes can simplify event routing but do not provide FIFO or deduplication guarantees, making it unsuitable for ordered SMS delivery.
- Option D (SNS FIFO topic): SNS does not support FIFO topics; SNS topics do not guarantee message ordering or deduplication, making this option technically impossible.
The Technical Blueprint #
Developer CLI Snippet - Sending FIFO Messages to SQS #
aws sqs send-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/trade-confirmations.fifo \
--message-body "{\"tradeId\":\"1234\", \"phone\":\"+15551234567\", \"confirmation\":\"Trade complete\"}" \
--message-group-id "user-1234" \
--message-deduplication-id "trade-1234-unique"
This ensures strict ordering per user (message-group-id) and prevents duplicates (deduplication-id).
The Comparative Analysis #
| Option | API Complexity | Ordering Guarantee | Duplicate Prevention | Appropriate for SMS Notifications |
|---|---|---|---|---|
| A | Low | None | None | No |
| B | Medium | Yes (FIFO queue) | Yes (deduplication) | Yes |
| C | Medium | No | No | No |
| D | N/A (No FIFO) | No | No | No |
Real-World Application (Practitioner Insight) #
Exam Rule #
“For the exam, always pick SQS FIFO when you see the keywords ordering and no duplicates in messaging workflows.”
Real World #
“In production, we often combine SQS FIFO with AWS Lambda to asynchronously process trade events, adding retries and idempotency at the application layer for extra robustness.”
(CTA) Stop Guessing, Start Mastering #
Disclaimer
This is a study note based on simulated scenarios for the AWS DVA-C02 exam.