Battle of the Serverless — Part 1.5: Rust vs Go vs Kotlin vs F# vs C# vs Python vs TypeScript/Node.js
Part 1 is here. This story is just a quick resume of new numbers based on a micro test including interpreted languages TypeScript/Node.js and Python 3.7. Read on if you want to see some observations and data points based on ~50,000 requests over 3 hours on AWS Lambda, API Gateway, and some compiled serverless “hello world” type services; some are with AWS provided runtimes; some are with BYOR, or Bring-Your-Own-Runtime like Rust.
This experiment continues the work done in our pretend suite of microservices exposed via API Gateway to form an API with a code name of Slipspace in a mock company called STG. Slipspace drives are how the ships in the Halo universe travel so quickly to different sectors of the galaxy through something called Slipstream Space, so thought it was cool for a name requiring awesome warp API speeds.
And the numbers are in
The values for this round of testing in table format are as follows. Go took the overall cake for being in the top 3 in each duration captured. C# and F# both showed they are very quick, but still very spiky. There’s a typo in the below table under Kotlin for Max Duration; it should be 1.16 seconds, not ms. Node.js and Python didn’t do as well as I thought they would, but we’ll see how they do under some non-hello world type workloads.
For average duration of AWS Lambda function execution, these are the data points.
For maximum duration of AWS Lambda function execution, these are the data points.
For minimum duration of AWS Lambda function execution, these are the data points.
FIN/ACK
This ends the hello world tests. Next we’ll be integrating queries to a DynamoDB backend to do some CRUD ops with more realistic workloads. That’s where the real numbers will show and we can actually make some decisions about who the winners are.