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?
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.
Justine
1 month agoEmile
2 months agoIlene
2 months agoIvan
2 months agoAbel
2 months agoLeonora
2 months agoKristal
3 months agoPamella
3 months agoClaudio
3 months agoTamera
3 months agoKarina
3 months agoKimberlie
4 months agoDahlia
4 months agoPaola
4 months agoRashida
4 months agoCrissy
4 months agoAngelyn
5 months agoLouisa
5 months agoJamika
10 months agoShonda
10 months agoValentin
10 months agoLisbeth
10 months agoKasandra
11 months agoJudy
11 months agoSilvana
11 months agoCarma
11 months agoGilma
9 months agoJohna
9 months agoAnika
9 months agoSena
10 months agoLeanna
11 months agoNicolette
11 months ago