This is somewhat of a shallow-level question. However, I perplexed by this trio of services.
I understand that KPL produces fast data and KCL consumes fast data produced by Kinesis. However, what I fail to understand is the if KPL and KCL make up this pair, what do we need AWS Kinesis for?
Another way to look at it: If AWS Kinesis can produce the fast data and KCL can consume it, then what we need KPL for?
Any clarifying answer is greatly appreciated.
AWS Kinesis is a very broad platform. Roughly , you can think of AWS Kinesis as: Kinesis Data Streams + Kinesis Video Streams + Kinesis Firehose + Kinesis Analytics. (Each one has its own purpose).
More detail here: https://aws.amazon.com/kinesis/
Now, lets take Kinesis Data Streams, for example: What if you are a developer and you need feed data to a specific Kinesis Data Stream programatically (i.e. SDK)? This is where KPL comes into play. You use KPL to feed data to THAT stream.
Similar Story with KCL:
If you are a developer and you want get data ("consume") from that DATA STREAM, you use KCL.
In short: AWS Kinesis is huge platform, where KCL and KPL serve specific purposes.