In AWS Certified Solutions Architect – Professional 2020: Kinesis section, there is a solution design for tweet sentiment analysis. Twitter API -> Nodes.js AWS SDK -> Kinesis Stream -> Kinesis Firehose -> S3 -> Lambda (unpack) -> DynamoDB -> Lambda (sentiment calls to Comprehend) -> DynamoDB.
My question is about this architecture. Why not use Kinesis Stream to Lambda (sentiment calls to comprehend) directly and then store the data in DynamoDB? Why bother to use S3 and Kinesis Firehose as an interim steps? Both Kinesis Stream and Lambda should be able to auto scale for on demand requests.
You could certainly do it that way. There are usually many ways to do something in AWS. In this case, the example is used as a training tool to show how one might make use of Kinesis Firehose.