To help answer your questions:
- Its always better to create 1 stream from DDB, either DDB streams or a Kinesis. So if your customer is planning to use more than 2 consumers, I would suggest them to move to Kinesis streams and then have all their Lambda consume from Kinesis. You also get the advantage of data retention over DDB streams.
- Besides the ones that you have mentioned:
- a. Stream records may appear more than once in the Kinesis data stream. You can use the timestamp attribute ApproximateCreationDateTime on each record to identify the actual order in which item modifications occurred, and to identify duplicate records in the stream.
- b. Using Kinesis Data Streams for DynamoDB is subject to both Kinesis Data Streams pricing for the data stream and DynamoDB pricing for the source table. So beware of the additional costs involved of Kinesis plus DynamoDB charges for change data capture for Kinesis Data Streams. They have to also calculate the red. # of shards reqd based on their DDB table.
Dynamo DB Kinesis Steams Best PracticeAccepted Answerasked a year ago
Lambda Alias with DynamoDB StreamsAccepted Answerasked 6 years ago
DynamoDB Streams and event based trigger of Lambdaasked 3 months ago
Can lambda know the specific attribute which changed in the dynamo db table update, when a lambda is triggered by dynamo db table update item??asked 7 months ago
Kinesis fan-outAccepted AnswerEXPERTasked 6 years ago
DynamoDB Streams - Are shards ordered in the stream description?Accepted Answerasked 6 years ago
Do I need to create two kinesis delivery streams to send messages under two different paths in the same s3 bucket?asked 4 months ago
Kinesis Stream Best Practices and CalculationsAccepted Answerasked 2 years ago
What is the best practice to archive items to S3 using dynamoDB TTL?Accepted Answerasked 6 months ago
DynamoDB Global tables do not support stream filtering.Accepted Answerasked 9 months ago