The scenario is I would be writing large volumes of data ( terabytes per day) to kinesis stream.I want to know which is a better way to achieve high write throughput. I am considering the below two options for producer clients.
Option 1: using Kinesis producer library( KPL).
or
option 2: AWS SDK (api).
I know KPL is an abstraction used on top of aws sdk, so it basically boils down to (KPL with AWS-SDK) or just AWS-SDK. From what I have researched it seems to me AWS-SDK does not provide ability to aggregate multiple records into a single put, whereas KPL does support this aggregation ( please correct me if this is wrong).
Both PutRecords( from Kinesis Data Streams API ) and KPL(using aggregation) provide hight write throughput, the question is which of the two options is better and why?. In a nutshell interested in knowing which will be faster in terms of writing data to kinesis stream, once it is written to stream I do not care how it is read.Also interested in knowing retry mechanism difference in both cases and asynchronous write performance.