I mean either can work, but it appears that because of the timeout issue and/or multiple requests doing a direct call won’t work. So, options are to trigger other multiple lambdas via sns by having them subscribe to the sns, or something else like sqs queues or even dynamo again by storing data in a a table to process. From the little info I know about your use case, having a lambda call an sns to invoke multiple other lambdas asynchronously sounds like a good approach. If you did sqs or a dynamo table, you’d just have another task running on a schedule to process results from the first task running on a schedule. So, you’re not gaining anything. That is, when you read the stream data from dynamo and realize you need to act on it, that should be the point where you do the action (i.e. call the sns to fan out to othwr lambdas).