Deal of The Day! Hurry Up, Grab the Special Discount - Save 25% - Ends In 00:00:00 Coupon code: SAVE25
Welcome to Pass4Success

- Free Preparation Discussions

Amazon Exam SAA-C03 Topic 3 Question 57 Discussion

Actual exam question for Amazon's SAA-C03 exam
Question #: 57
Topic #: 3
[All SAA-C03 Questions]

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?

Show Suggested Answer Hide Answer
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

Contribute your Thoughts:

Jamika
3 hours ago
Option C? Really? Changing the partition key to the timestamp? That's like trying to put out a fire with gasoline.
upvoted 0 times
...
Lisbeth
1 days 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.
upvoted 0 times
...
Kasandra
4 days ago
I think changing the capacity mode to on-demand could be the most cost-effective solution.
upvoted 0 times
...
Judy
5 days ago
I believe using a separate Kinesis stream for each service could help.
upvoted 0 times
...
Silvana
6 days ago
I disagree, changing the partition key might be a better solution.
upvoted 0 times
...
Carma
7 days 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.
upvoted 0 times
...
Leanna
8 days ago
The correct answer is B. Increasing the number of shards should resolve the throttling issues.
upvoted 0 times
...
Nicolette
19 days ago
I think the developer should double the number of shards.
upvoted 0 times
...

Save Cancel