Courseiva
Data EngineeringmediumMultiple ChoiceObjective-mapped

Reduce Kinesis Iterator Age by Increasing Shards

A company captures streaming data from IoT devices using Amazon Kinesis Data Streams. The data is consumed by a custom application that processes records in near real-time. Recently, the application has been falling behind, and the stream is showing increased 'iterator age' metrics in CloudWatch. Which action is MOST likely to reduce the iterator age?

Quick Answer

Iterator age is Kinesis's way of surfacing how far behind a consumer has fallen: it measures the gap between the timestamp of the oldest unread record in a shard and the current time, so a rising iterator age is a direct signal that records are arriving faster than the consumer can read them, not that anything is wrong with the records themselves. Because each shard in a Kinesis Data Stream has a fixed read throughput ceiling, the total amount of data a consumer fleet can pull from the stream per second is capped by how many shards exist, no matter how efficiently the consuming application code is written. Increasing the number of shards raises that ceiling directly, giving the custom application more parallel partitions to read from simultaneously, which increases aggregate throughput and lets the consumer catch up to the incoming IoT data rate, bringing iterator age back down. This is a different lever from optimizing the consumer application's own processing logic, even a perfectly efficient consumer is still bounded by the total read capacity the shard count provides, so when the bottleneck is genuinely throughput rather than processing inefficiency, adding shards is the fix that scales with the actual constraint. Whenever a Kinesis-based scenario describes a consumer falling behind with a rising iterator age, and doesn't point to a specific application-level inefficiency, treat shard count as the first thing to check, since it directly controls the stream's total read capacity.

⚠ Common exam trap

Common misconception: increasing retention period helps with processing backlogs, but retention only affects data durability, not throughput; the correct solution is to scale shards to match consumer throughput.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Increase the number of shards in the stream

The 'iterator age' metric in Amazon Kinesis Data Streams measures the time between the oldest unread record in a shard and the current time. An increasing iterator age indicates that consumers are reading data slower than it is being produced. Increasing the number of shards increases the stream's total read capacity, allowing the custom application to process records in parallel and reduce the backlog.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Increase the data retention period of the stream

    Why it's wrong here

    Increasing retention keeps data longer but does not help processing keep up.

  • Decrease the number of shards in the stream

    Why it's wrong here

    Fewer shards mean less capacity, making the backlog worse.

  • Increase the number of shards in the stream

    Why this is correct

    More shards increase throughput, allowing the consumer to process faster.

  • Reduce the data retention period of the stream

    Why it's wrong here

    Reducing retention does not affect processing speed; it only deletes data sooner.

About these practice questions

This MLS-C01 question is part of Courseiva's 1,672-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on MLS-C01

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. A company uses Amazon Kinesis Data Streams to ingest clickstream data from a website. The data is consumed by a custom application that runs on Amazon EC2 instances. The company notices that the consumer application is falling behind the producer, causing data to be throttled. Which action should the company take to improve the consumer's throughput?

easy
  • A.Reduce the data retention period of the stream
  • B.Increase the number of shards in the Kinesis data stream
  • C.Increase the maximum concurrency of the AWS Lambda function that processes the stream
  • D.Use Amazon Kinesis Data Firehose to deliver data to Amazon S3

Why B: Increasing the number of shards increases the stream's read capacity, allowing more consumers to read in parallel and improving throughput. Option A is wrong because reducing the data retention period does not increase read throughput; it only affects how long data is stored. Option C is wrong because Lambda concurrency is applicable only to Lambda functions, not to the custom EC2 application consuming the stream. Option D is wrong because Amazon Kinesis Data Firehose is a different service for delivering streaming data to destinations like S3, and it does not improve the throughput of the existing EC2 consumer.

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This MLS-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the MLS-C01 exam.