AWS Kinesis Streams Latency: Troubleshooting and Solutions

Identifying the Underlying Problem with Kinesis Stream Latency

Question

A company is making use of Kinesis streams to process millions of records.

Enough shards have been assigned to the stream.

The KPL library is being used in an application to submit the requests.

A Lambda function is being used to process the requests.

During the initial stages of execution, there is a latency of around 150 to 200 Milliseconds being recorded in Cloudwatch for the consumption of records.

The AWS Lambda function is showing no throttling errors and the memory and time is being consumed as per standard specifications.

Which of the following could be the underlying problem?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - B.

The AWS Documentation mentions the following.

If your Amazon Kinesis Data Streams application receives provisioned-throughput exceptions, you should increase the provisioned throughput for the DynamoDB table.

The KCL creates the table with a provisioned throughput of 10 reads per second and 10 writes per second, but this might not be sufficient for your application.

For example, if your Amazon Kinesis Data Streams application does frequent checkpointing or operates on a stream that is composed of many shards, you might need more throughput.

All other options are incorrect since if this were the cases, then the Lambda function would never run at all.

For more information on reading records from Kinesis, please visit the url.

https://docs.aws.amazon.com/streams/latest/dev/kinesis-record-processor-ddb.html

Based on the information provided, it is unlikely that options A, B, and D are the underlying problem.

Option A - An incorrect IAM Role has been assigned to the Lambda function: The IAM Role determines what AWS resources a Lambda function can access. While it is important to ensure that the correct IAM Role is assigned to the Lambda function, this would not likely cause a latency issue. Furthermore, if the IAM Role was incorrect, the Lambda function would not be able to access Kinesis at all, not just cause a latency issue.

Option B - The throughput for the DynamoDB table is being exceeded: This option is not relevant to the issue at hand since DynamoDB is not mentioned as being used in the processing of records.

Option D - The wrong programming language has been chosen for the Lambda function: The programming language used for the Lambda function would not likely cause a latency issue in this scenario. Additionally, it is mentioned that the Lambda function is executing without any errors.

Therefore, option C - The right packages have not been installed for the Lambda function is the most likely cause of the latency issue.

The KPL library is being used in the application to submit requests, but it is possible that some required packages may not have been installed correctly for the Lambda function to properly handle the incoming records. Without the necessary packages, the Lambda function may be slowed down in its processing of the records, which would result in the observed latency.

To resolve this issue, the packages required by the Lambda function should be reviewed to ensure they have been installed correctly. Additionally, CloudWatch logs for the Lambda function should be examined to identify any specific issues that may be causing the latency.