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.
Go deeper
Related to this question
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 →
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.