nerdexam
Amazon

DAS-C01 · Question #12

A company wants to improve user satisfaction for its smart home system by adding more features to its recommendation engine. Each sensor asynchronously pushes its nested JSON data into Amazon…

The correct answer is B. Update the sensors code to use the PutRecord/PutRecords call from the Kinesis Data Streams. Updating the sensor code to use the PutRecord or PutRecords API from the Kinesis Data Streams SDK directly (Option B) solves the problem. The Kinesis Producer Library (KPL) is designed to maximize throughput by aggregating and buffering multiple records before sending them…

Collection

Question

A company wants to improve user satisfaction for its smart home system by adding more features to its recommendation engine. Each sensor asynchronously pushes its nested JSON data into Amazon Kinesis Data Streams using the Kinesis Producer Library (KPL) in Java. Statistics from a set of failed sensors showed that, when a sensor is malfunctioning, its recorded data is not always sent to the cloud. The company needs a solution that offers near-real-time analytics on the data from the most updated sensors. Which solution enables the company to meet these requirements?

Options

  • ASet the RecordMaxBufferedTime property of the KPL to "-1" to disable the buffering on the sensor
  • BUpdate the sensors code to use the PutRecord/PutRecords call from the Kinesis Data Streams
  • CSet the RecordMaxBufferedTime property of the KPL to "0" to disable the buffering on the sensor
  • DUpdate the sensors code to use the PutRecord/PutRecords call from the Kinesis Data Streams

How the community answered

(69 responses)
  • A
    4% (3)
  • B
    84% (58)
  • C
    3% (2)
  • D
    9% (6)

Explanation

Updating the sensor code to use the PutRecord or PutRecords API from the Kinesis Data Streams SDK directly (Option B) solves the problem. The Kinesis Producer Library (KPL) is designed to maximize throughput by aggregating and buffering multiple records before sending them, which introduces latency. When a sensor malfunctions and shuts down unexpectedly, any records sitting in the KPL buffer are lost before being transmitted. By switching to the raw PutRecord/PutRecords SDK calls, each record is sent immediately to Kinesis without buffering, ensuring near-real-time delivery and eliminating the risk of buffer loss on failure. Option A uses an invalid value ('-1') for RecordMaxBufferedTime. Option C sets RecordMaxBufferedTime to '0', which minimizes buffering in KPL, but the KPL still applies aggregation overhead; the raw SDK call is more direct and reliable for this use case.

Topics

#Kinesis Data Streams#Kinesis Producer Library (KPL)#Real-time data ingestion#Latency optimization

Community Discussion

No community discussion yet for this question.

Full DAS-C01 Practice