(no title)
fivea | 3 years ago
I don't believe there is any truth to this statement.
The general guidelines for AWS lambda is that a) if you seek performance then Go is the way to go, b) for everything else nodejs (i.e., JavaScript/typescript) is by far the best runtime, specially given lambda's single-threaded nature and nodejs's support for concurrency.
All other options are only relevant if you have very specific non-technical constraints, such as wanting to reuse code (JDK) or just leveraging whatever language your team already uses somewhere else.
Something1234|3 years ago
fivea|3 years ago
That's not exactly true.
As per AWS, with AWS Lambda you only get a second core if you provision more than 1769MB of RAM.
The number of cores can grow up to a max of 6 with provisions of over 10GB of RAM albeit AWS does not specify how that's supposed to be mapped.
There are some empirical and highly unofficial tests on AWS Lambdas that indicate that more than 1 vCPU are allocated with provisions of over 800MB of RAM, but each of those vCPUs are capped at 50% of a CPU core.
The key factor here, and what makes AWS Lambda's nodejs runtime the absolute best runtime and the de facto standard for lambdas, is that nodejs's single-threaded event loop already buys you the ability to execute code concurrently without having to rake up a large bill and resort to arcane tricks to reign that under control.
I'd add that AWS Lambda's blog post on parallel processing in Python starts off by making it clear that nodejs is the way to go.
https://aws.amazon.com/blogs/compute/parallel-processing-in-...