## Benefits - Guaranteed trigger "directly from the horse's mouth" for a Lambda function whenever a modification is made to DDB table. So the developer doesn't need to rely on other code to hook this together. ## Limitations and risks - Can cause a lot of redundant Lambda invocations if you're not interested a specific modification type for a certain entity type. More of an issue when using single-table design. - Potential for infinite recursion with [[DynamoDB streams]] Lambda handlers. E.g. if you trigger on a modify and then do another modify on same table inside the stream handler. Again, this is exacerbated on a single table design. - Can lead to huge functions with several if/else branches if not careful (due to desire to avoid redundant invocations). - Stream handlers receive a low-level payload for which the subscriber needs to know the schema. They will not receive a more friendly domain event. - Max of 2 Lambda functions can read from same stream (see [[DynamoDB streams#Quota limits]]) --- tags: #DynamoDB, #Serverless, #AWSServices, #AWS