Invoking other Lambdas synchronously from a Lambda is a scalability anti-pattern. Lambdas have a maximum execution time before they timeout (15 minutes as of May 2021). Having to wait for another Lambda to finish its execution could lead to a timeout.
To be precise, I think the title should mention "synchronously": Lambdas should not invoke other lambdas _synchronously_
The description suggests 2 alternatives. I would drop the 2nd suggestion to make the call asynchronous, because I think it's generally not a good idea, due to tight coupling. The first idea is great, I'd mention only that: A better solution is to generateevents that can be consumed asynchronously by other Lambdas.
=== on 27 May 2021, 14:23:37 Alexandre Gigleux wrote:
+1 with [~janos.gyerik]
I also suggest to rewrite "As the runtime of your function is bounded, waiting for another Lambda to finish executing could cause a timeout." like this:
"Lambdas have a maximum execution time before they timeout (15 minutes as of May 2021). Having to wait for another Lambda to finish its execution could lead to a timeout".
=== on 31 May 2021, 12:04:23 Quentin Jaquier wrote:
We review the suggestions together with [~dorian.burihabwa], it makes sense to us as well.
The remaining concern is that the compliant solution is not relevant anymore and we have a hard time coming up with a new one. [~janos.gyerik] do you have an example or a link to the documentation that could help?