VADYM-KAZULKIN

High performance Serverless Java on AWS

Room: Prawn Cocktail | Time: 11:55 am
Level: Intermediate

Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I’ll look at the general best practices and techniques we can use to decrease memory consumption and cold start times for Java Serverless applications on AWS Lambda including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I’ll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, lambda memory settings, Java compilation options, managing Lambda dependencies with Lambda layers, and HTTP (a)synchronous clients and measure their impact on the AWS Lambda cold and warm start/execution times.

Vadym Kazulkin
Head of Development at ip.labs
tags: java, serverless, snapstart, GraalVM