Skip to main content

These questions are independently created for study purposes. They are not official AWS exam questions, actual exam questions, leaked questions, or exam dumps.

SAA-C03High-Performing ArchitecturesDifficulty:Hard

SAA-047

You receive tens of thousands of telemetry records per second from IoT devices and want to perform two processes in parallel — real-time anomaly detection and accumulation into an analytics platform — while preserving the chronological order per device. If one of the processes has a defect, you need to be able to re-read and reprocess the last 24 hours of data. Which service is the most appropriate?

Choices

Explanation and answer

Read the explanation and correct answer (spoiler — try answering first)

Correct answer: B. Amazon Kinesis Data Streams

Explanation

Kinesis Data Streams guarantees ordering per partition key (within a shard) and keeps records on the stream for the retention period (24 hours by default, up to 365 days). Because multiple consumers can read the same records from independent positions, it satisfies both the parallel processing and the reprocessing requirements.

Per-choice explanations

A. Fan out by subscribing two Lambda functions to an Amazon SNS topic

Incorrect. SNS can deliver the same message to multiple subscribers, but with a standard topic delivery happens only once, with no retention or re-read mechanism and no ordering guarantee. Ordering requires a FIFO topic, and a FIFO topic can only deliver to SQS queues (FIFO or standard). You cannot subscribe a Lambda function directly, so you have to put an SQS queue in between, and if that queue is an SQS standard queue the message group ID is not passed on, so the ordering guarantee is lost anyway.

B. Amazon Kinesis Data Streams

Correct. Ordering within a shard, re-reading within the retention period, and independent reads by multiple consumers are three characteristics that all match the requirements.

C. An Amazon SQS FIFO queue

Incorrect. A FIFO queue guarantees ordering per message group, but messages are deleted after consumption so past data cannot be re-read. It also does not meet the requirement to deliver the same message to two independent processes.

D. An Amazon SQS standard queue

Incorrect. A standard queue does not guarantee ordering. Messages also assume a single consumer processes and deletes them, so you can neither feed the same data to two processes nor re-read deleted messages.

Practical Use

Amazon Kinesis Data Streams is a distributed streaming service that ingests large volumes of records in real time and retains them on the stream for a period. A stream is divided into shards, and the destination shard for a record is determined by a hash of the partition key that the producer specifies. Records with the same partition key always go to the same shard and are read out in the order they were put, which achieves ordering guarantees per unit such as "per device" or "per user." Capacity modes include provisioned (you manage the shard count) and on-demand (automatically adjusted to traffic). The decisive difference from queues is that records do not disappear when consumed. A consumer holds its own read position (iterator) and can re-read past records at any time during the retention period (24 hours by default, up to 365 days). This property naturally enables a fan-out design in which multiple consumer applications read the same stream independently without interfering with each other (enhanced fan-out even gives each consumer dedicated throughput). SQS, on the other hand, is a work queue in which one consumer processes and deletes a message; re-reading after deletion is impossible, and standard queues do not guarantee ordering. SNS provides push-based fan-out, but a standard topic has no retention or re-read mechanism. If you simply need to deliver data into S3, Redshift, or OpenSearch, Amazon Data Firehose, which requires no shard management, may be more suitable. On SAA-C03, when keywords such as "preserve ordering," "feed the same data to multiple processes," "reprocess by going back a certain period," and "tens of thousands of records per second of streaming" all appear, Kinesis Data Streams is the correct answer. Conversely, "process exactly once while avoiding duplicates" or "a job queue that needs strict ordering" points to SQS FIFO, and "loosely coupled task distribution" points to an SQS standard queue.

Related links

Related services

Related terms

Related comparison articles