Kinesis Shard Scaling to Improve Consumer Performance
A company is using Amazon Kinesis Data Streams to ingest clickstream data. The data is consumed by a fleet of EC2 instances running a custom consumer application. The consumer is falling behind and the shard iterator age is increasing. Which TWO actions should the data engineer take to improve consumer performance? (Choose TWO.)
Quick Answer
This is a 'choose two' question, and the two correct actions address consumer throughput from different angles, one about how many total shards exist, and one about how each consumer reads from those shards. Increasing the number of shards raises the total read capacity of the stream, since each shard carries its own fixed throughput ceiling, roughly 2 MB per second, or 5 read transactions per second under the standard consumer model, so more shards give the consumer fleet more parallel partitions to divide the workload across, directly reducing the backlog behind a falling-behind consumer. Enabling enhanced fan-out changes how that per-shard throughput is shared: under the standard model, all consumers reading a shard share that shard's throughput, but enhanced fan-out gives each registered consumer its own dedicated throughput per shard using a push-based delivery mechanism, which removes the contention that occurs when multiple consumer applications compete for the same shard's limited read capacity. Together, more shards address the total capacity of the stream, while enhanced fan-out addresses how efficiently each individual consumer can pull from the capacity that already exists, which is why they complement rather than duplicate each other. Whenever a question describes a Kinesis consumer falling behind with rising iterator age and asks for two ways to fix it, expect the answer to combine a capacity-side change, like shard count, with a delivery-model change, like enhanced fan-out, rather than two variations of the same fix.
⚠ Common exam trap
Candidates often confuse 'switching to KCL' (a library) with a performance fix, when in fact KCL is just a helper for checkpointing and load balancing, not a throughput booster.
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
Increasing the number of shards in the stream directly increases the total read capacity of the Kinesis Data Stream. Each shard provides a fixed read throughput of 2 MB/s (or 5 read transactions per second), so adding shards allows the consumer fleet to parallelize processing across more data partitions, reducing the backlog and shard iterator age.
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 number of shards in the stream
Why this is correct
More shards increase the total read capacity.
- ✗
Decrease the data retention period
Why it's wrong here
Retention period does not affect consumer speed.
- ✗
Use an AWS Lambda function to process the data
Why it's wrong here
Lambda may still throttle if shard limits are hit.
- ✓
Enable enhanced fan-out on the stream
Why this is correct
Enhanced fan-out provides dedicated throughput per consumer.
- ✗
Switch to the Kinesis Client Library (KCL)
Why it's wrong here
KCL is a library, not a performance improvement by itself.
Go deeper
Related to this question
About these practice questions
One of 1,672 original MLS-C01 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. 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 collect IoT sensor data. The stream has 4 shards. A consumer application reads from the stream using the Kinesis Client Library (KCL). The application processes records and stores them in Amazon DynamoDB. Recently, the data volume has increased, and the consumer is falling behind. Which action should the team take to increase the processing throughput?
medium- A.Deploy additional consumer instances using the same application name.
- B.Increase the write capacity of the DynamoDB table.
- C.Increase the data retention period of the stream to 7 days.
- ✓ D.Increase the number of shards in the Kinesis stream.
Why D: Increase the number of shards in the Kinesis stream. Kinesis Data Streams throughput is determined by the number of shards; each shard provides 1 MB/s or 1000 records/s for reading. Since the consumer is falling behind, increasing shards directly increases the read throughput. Option A is incorrect because adding more consumer instances without increasing shards will not improve throughput; KCL ensures each shard is processed by one worker, so extra workers are idle. Option B is incorrect because increasing DynamoDB write capacity may reduce throttling but does not address the root cause of low read throughput from Kinesis. Option C is incorrect because increasing the data retention period does not affect the rate at which data can be read.
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.