Disclamer: I've never used Kinesis.
Context: we are designing a service that fetch data from a 4.1M Items DynamoDB table every minute, we do a grouping job based on one Items attribute, and we write it to a Data Store (accessible from EC2s only, not Lambda). We target to execute each job in <1m, ideally 15 seconds. An item in DDB can get updates on one of his attributes at any time (i.e., item override in DDB table). Only most recent version of the item must be used in grouping job.
This is a basic architecture diagram:
Supposing that DDB is provided with right RCU, my questions are:
- Is there a good use case for Kinesis? Is there any mayor issue design issue in this solution for our use case?
- How do I guarantee that only the last version of the DDB item (which is updated over time) is used for the grouping job?