nerdexam
Amazon

DVA-C02 · Question #594

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 cont

The correct answer is C. Change the partition key from service name to creation timestamp.. The stream uses service name as the partition key. This can cause "hot partition" issues when a few service names generate significantly more logs compared to others, causing uneven distribution of data across shards. Metrics show that the write capacity used is below provisioned

Submitted by mike_84· Mar 5, 2026Troubleshooting and Optimization

Question

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 uses is below the provisioned capacity. Which solution will most effectively resolve the throttling issue?

Options

  • AChange the capacity mode from provisioned to on-demand.
  • BDouble the number of shards until the throttling errors stop occurring.
  • CChange the partition key from service name to creation timestamp.
  • DUse a separate Kinesis stream for each service to generate the logs.

How the community answered

(47 responses)
  • A
    26% (12)
  • B
    11% (5)
  • C
    57% (27)
  • D
    6% (3)

Explanation

The stream uses service name as the partition key. This can cause "hot partition" issues when a few service names generate significantly more logs compared to others, causing uneven distribution of data across shards. Metrics show that the write capacity used is below provisioned capacity, which confirms that the throughput errors are due to shard-level limits and not overall capacity. By changing the partition key to the creation timestamp (or a composite key including timestamp), the distribution of data across shards can be randomized, ensuring an even spread of records. This resolves the shard overutilization issue and eliminates ProvisionedThroughputExceededException.

Community Discussion

No community discussion yet for this question.

Full DVA-C02 Practice