AWS Lambda NodeJS 8 vs. Python 3.7 vs Golang v1.x

David Sandor
Build Succeeded
Published in
3 min readMay 7, 2019

--

Full disclosure, I primarily work with NodeJS on a daily basis but fully recognize that in order to solve a problem you must use the best tool for the job. I had to consume an AWS Kinesis stream with Lambda but had some questions surrounding what language I should use for the Lambda function.

So I set out to test mainly the bootstrapping process and warm/cold starting of the underlying docker instance for the lambda.

What did I test?

  1. Create a Kinesis Stream of CloudWatch Logs (a decent stream of data).
  2. Subscribe a NodeJS, Python, and Go Lambda to read 10000 batch size of messages and print to stdout the deserialized object.
  3. Let this run for about 2 hours and check the CloudWatch metrics on each Lambda Function.

My natural bias was to assume the Go and Python implementations would absolutely destroy the metrics of the NodeJS Lambda. I was actually pleasantly surprised to notice that NodeJS performed pretty well considering.

NodeJS Results — Duration average 0.538ms (538ns)
Golang Results — Duration average 1.3ms

--

--