Which Kinesis Option Delivers IoT Sensor Data to S3 with Least Latency?

Answer Correct answer: C — Use Kinesis Data Streams with KCL and a 5-second application buffer to write sensor data to S3 for the least latency.

A lab uses IoT sensors to monitor humidity, temperature, and pressure for a project. The sensors send 100 KB of data every 10 seconds. A downstream process will read the data from an Amazon S3 bucket every 30 seconds. Which solution will deliver the data to the S3 bucket with the LEAST latency?

  1. Use Amazon Kinesis Data Streams and Amazon Kinesis Data Firehose to deliver the data to the S3 bucket. Use the default buffer interval for Kinesis Data Firehose.
  2. Use Amazon Kinesis Data Streams to deliver the data to the S3 bucket. Configure the stream to use 5 provisioned shards.
  3. Use Amazon Kinesis Data Streams and call the Kinesis Client Library to deliver the data to the S3 bucket. Use a 5 second buffer interval from an application. Correct Answer
  4. Use Amazon Managed Service for Apache Flink (previously known as Amazon Kinesis Data Analytics) and Amazon Kinesis Data Firehose to deliver the data to the S3 bucket. Use a 5 second buffer interval for Kinesis Data Firehose.

Community Votes

C
59%
D
23%
A
18%

59% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.

Community Insight

You must distinguish between Kinesis Data Streams as a durable ingestion buffer and Firehose as a managed delivery service; the trap is assuming Firehose's default or 5-second buffer beats a purpose-built KCL consumer.

This DEA-C01 question asks which AWS streaming path writes 100 KB IoT sensor batches to Amazon S3 with the least latency. The answer is Kinesis Data Streams with the Kinesis Client Library and a 5-second application buffer, because it avoids Firehose's longer default buffering and the extra Flink hop.

Many learners pick D, pairing Managed Service for Apache Flink with Firehose on a 5-second buffer, but Flink adds an unnecessary processing stage and Firehose buffering — plus historically a 60-second minimum — so it is not the lowest-latency path.

Community Discussion (9 comments)

tgv 👍 8 Selected: C
C - This option ensures low latency by using a short buffer interval (5 seconds). The use of KCL allows for customized processing logic and timely delivery of data to S3. This makes it a strong candidate for minimal latency. D - While this option provides low latency with a 5-second buffer interval, it introduces unnecessary complexity by using Apache Flink for what seems to be a straightforward data ingestion task. This option is overkill for the given use case and may add more operational overhead than necessary.
artworkad 👍 5 Selected: D
Kinesis Data Streams cannot deliver directly to S3. Data has to go through Firehose. A is correct but is not lowest latency. I would go with D, as we can set the buffer interval to a low value. We do not need Flink, tho. That's a bit confusing.
Eleftheriia 👍 2 Selected: A
Why could not be A? https://aws.amazon.com/blogs/big-data/optimize-downstream-data-processing-with-amazon-data-firehose-and-amazon-emr-running-apache-spark/ It uses Data Firehose + Kinesis Data Streams
Parandhaman_Margan 👍 1
Answer:D
andrologin 👍 2 Selected: C
Use data streams and KCL, option A would be right but the default buffer for Firehose does not allow it to be correct. D adds extra components that are not needed for delivery of data.
LR2023 👍 2 Selected: A
https://aws.amazon.com/about-aws/whats-new/2023/12/amazon-kinesis-data-firehose-zero-buffering/
4bc91ae 👍 1
its C - option D uses 1/ Analytics which summarizes data and gence has delay then passses to 2/ Firehose for deliver and Firehose doesnt say its using zero buffering
sdas1 👍 1
Firehose uses multi-part upload for S3 destination when you configure a buffer time interval less than 60 seconds to offer lower latencies. Due to multi-part upload for S3 destination, you will see some increase in S3 PUT API costs if you choose a buffer time interval less than 60 seconds.
GHill1982 👍 3 Selected: C
I think the answer is C. Kinesis Data Firehose has a minimum buffer interval of 60 seconds (1 minute) or 1 MB of data.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Expert Analysis

Why the Answer Is Correct

Option C uses Amazon Kinesis Data Streams to capture the 100 KB sensor payloads as they arrive every 10 seconds, and the Kinesis Client Library (KCL) lets a custom consumer read those records and write them directly to Amazon S3. By setting a 5-second buffer interval in that application, the lab can flush data to S3 well within the downstream 30-second read cycle. KDS itself does not natively write to S3, so the KCL consumer is the component that performs the delivery; the short application buffer gives the least end-to-end latency among the choices. Community members such as tgv and andrologin reached the same conclusion, with andrologin noting "Use data streams and KCL." This design is the most direct streaming-to-S3 path without adding another managed service.

Why the Other Options Are Wrong

Option A relies on Kinesis Data Firehose with its default buffer interval, which is far longer than 30 seconds — historically 300 seconds, or at minimum 60 seconds — so downstream reads would often find no new S3 object. Option B uses only Kinesis Data Streams and does not specify a consumer that writes to S3; data streams store records but cannot deliver them to S3 by themselves, and provisioning five shards changes throughput, not delivery latency. Option D inserts Amazon Managed Service for Apache Flink before Firehose, adding a processing stage, and Firehose still buffers; even though AWS later introduced zero buffering, the Flink hop makes it slower than a direct KCL writer. As artworkad pointed out, "Kinesis Data Streams cannot deliver directly to S3," which is exactly why C pairs KDS with a KCL application rather than relying on KDS alone.

Community Comment Notes

GHill1982 highlighted a key Firehose constraint: "Kinesis Data Firehose has a minimum buffer interval of 60 seconds (1 minute)" — that rules out D in the exam's original context. Eleftheriia asked why A could not work and linked a Firehose + EMR blog, but that pipeline is optimized for batch analytics, not the lowest latency to S3. LR2023 shared AWS's zero-buffering announcement, which shows Firehose can now be tuned very low, yet the question still asks for the least latency and C's direct KCL write avoids Firehose entirely. Several voters, including tgv, favored C because the 5-second application buffer and KCL processing logic meet the 30-second downstream SLA.

Official Reference

Exam Strategy

For latency questions, trace the full path from producer to sink and look for every buffering or processing hop. If an option uses Firehose's default buffer, remember the default is 300 seconds and the historical minimum is 60 seconds, so it rarely satisfies sub-minute downstream reads. Direct consumer writes, like a KCL application, usually win when the question asks for the least latency.

Frequently Asked Questions

Why can't Kinesis Data Streams deliver IoT data to S3 by itself?

Kinesis Data Streams stores records for consumers but has no native S3 sink. You need a KCL application or Firehose to read records and write them to S3.

Does Firehose support a 5-second buffer interval for S3 in option D?

Firehose historically enforced a 60-second minimum, and AWS later added zero buffering; either way, adding Managed Flink before Firehose introduces more processing latency than a direct KCL write.

Related Analysis

Practice All DEA-C01 Questions

Access 100 questions with complete answers and detailed explanations.

View Full DEA-C01 Practice Test →

← Back to DEA-C01 Study Guide