Halloween Special 2026! Get Up to 25% OFF Practice Questions! Limited Time - Ends In 00:00:00 Coupon code: SAVE25
Welcome to Pass4Success

- Free Preparation Discussions

Amazon SAA-C03 Exam - Topic 3 Question 57 Discussion

Posted by Regenia on Mar 19, 2025 at 09:24 AM

A developer used the AWS SDK to create an application that aggregates and produces log records for 10 services. The application delivers data to an Amazon Kinesis Data Streams stream.

Each record contains a log message with a service name, creation timestamp, and other log information. The stream has 15 shards in provisioned capacity mode. The stream uses service name as the partition key.

The developer notices that when all the services are producing logs, ProvisionedThroughputExceededException errors occur during PutRecord requests. The stream metrics show that the write capacity the applications use is below the provisioned capacity.

How should the developer resolve this issue?

Suggested Answer: C

Partition Key Issue:

Using 'service name' as the partition key results in uneven data distribution. Some shards may become hot due to excessive logs from certain services, leading to throttling errors.

Changing the partition key to 'creation timestamp' ensures a more even distribution of records across shards.

Incorrect Options Analysis:

Option A: On-demand capacity mode eliminates throughput management but is more expensive and does not address the root cause.

Option B: Adding more shards does not solve the issue if the partition key still creates hot shards.

Option D: Using separate streams increases complexity and is unnecessary.


Kinesis Data Streams Partition Key Best Practices

Get Premium SAA-C03 Questions as Interactive Web-Based Practice Test or PDF Real Exam Format Detailed Explanations Instant Access Get Your Practice Test
32 comments · newest first
JU
Justine 9 months ago
Wait, changing the partition key? Isn't that risky?
EM
Emile 10 months ago
Using separate streams for each service could help with isolation, but I’m not sure if it’s worth the extra management overhead.
IL
Ilene 10 months ago
Changing the partition key sounds interesting, but I feel like it might complicate things more than necessary.
IV
Ivan 10 months ago
I think doubling the number of shards could work, but I wonder if it might be overkill since the metrics show we're below capacity.
AB
Abel 10 months ago
I remember reading that changing the capacity mode to on-demand can help with scaling issues, but I'm not sure if that's the best option here.
LE
Leonora 10 months ago
I think doubling the shards is a solid move!
KR
Kristal 10 months ago
Sounds like a classic case of shard throttling.
PA
Pamella 11 months ago
I disagree, separate streams for each service seems excessive.
CL
Claudio 11 months ago
On-demand mode could really simplify things here.
TA
Tamera 11 months ago
I think the key here is to understand why the ProvisionedThroughputExceededException errors are occurring even though the write capacity is below the provisioned capacity. That's the clue to figuring out the right solution.
KA
Karina 11 months ago
Hmm, I'm not sure about changing the partition key. That could introduce other issues with how the data is organized. Using a separate stream for each service might work, but that seems like it could get complicated to manage. I'll need to think this through carefully.
KI
Kimberlie 12 months ago
I've seen issues like this before. Changing the capacity mode to on-demand might be the easiest fix, but doubling the number of shards could also help spread out the load. I'll need to weigh the pros and cons of each approach.
DA
Dahlia 12 months ago
Okay, let's see here. The key seems to be the ProvisionedThroughputExceededException errors, even though the write capacity is below the provisioned capacity. I'm a bit confused by that, but I think I have an idea.
PA
Paola 1 year ago
Hmm, this looks like a tricky one. I'll need to think through the different options carefully to figure out the best solution.
RA
Rashida 1 year ago
I'm pretty confident that the solution here is to increase the number of shards. That should give the stream more capacity to handle the high write volume without throttling.
CR
Crissy 1 year ago
Okay, I think I've got this. The issue is that the write capacity is being exceeded, even though the provisioned capacity is not being fully utilized. Changing the partition key or using separate streams for each service could help distribute the load more evenly.
AN
Angelyn 1 year ago
Hmm, I'm a bit confused by the question. I'll need to re-read it a few times to make sure I understand the key details before deciding on a solution.
LO
Louisa 1 year ago
This looks like a tricky one. I'll need to think through the different options carefully to figure out the best approach.
JA
Jamika 2 years ago
Option C? Really? Changing the partition key to the timestamp? That's like trying to put out a fire with gasoline.
SH
Shonda 1 year ago
↳ replying to Jamika
I think the developer should consider increasing the number of shards in the stream to handle the increased load from all the services producing logs.
VA
Valentin 1 year ago
↳ replying to Jamika
Option C might actually work in this case. Changing the partition key to the timestamp could help distribute the load more evenly.
LI
Lisbeth 2 years ago
Ah, the age-old problem of too many cooks in the kitchen. Option B is definitely the way to go, unless you want to end up with a 'Kinesis Data Streams Inferno' on your hands.
KA
Kasandra 2 years ago
I think changing the capacity mode to on-demand could be the most cost-effective solution.
JU
Judy 2 years ago
I believe using a separate Kinesis stream for each service could help.
SI
Silvana 2 years ago
I disagree, changing the partition key might be a better solution.
CA
Carma 2 years ago
I think option D is the way to go. Using separate streams for each service makes more sense than trying to fit everything into one stream.
GI
Gilma 1 year ago
↳ replying to Carma
That could work too, as long as the developer monitors the stream metrics to ensure they are not exceeding the provisioned capacity.
JO
Johna 1 year ago
↳ replying to Carma
That's a valid point. Maybe the developer can consider increasing the number of shards in the stream to handle the increased load.
AN
Anika 1 year ago
↳ replying to Carma
But wouldn't creating separate streams for each service increase the cost and complexity of managing the application?
SE
Sena 1 year ago
↳ replying to Carma
I agree, option D seems like the best solution to avoid the ProvisionedThroughputExceededException errors.
LE
Leanna 2 years ago
The correct answer is B. Increasing the number of shards should resolve the throttling issues.
NI
Nicolette 2 years ago
I think the developer should double the number of shards.
0/2000 characters

Save Cancel