kotlin-graalvm-custom-aws-lambda-runtime-talk icon indicating copy to clipboard operation
kotlin-graalvm-custom-aws-lambda-runtime-talk copied to clipboard

This is the demo code for a talk on improving cold startup times for JVM-based lambdas using GraalVM and Custom AWS Lambda Runtimes.

GitPitch

Fighting cold startup issues for your Kotlin Lambda with GraalVM

This is the demo code for a talk on improving cold startup times for JVM-based lambdas using GraalVM and Custom AWS Lambda Runtimes.

Slides

The presentation slides can be found here - https://gitpitch.com/mduesterhoeft/kotlin-graalvm-custom-aws-lambda-runtime-talk#/

Running the sample

The master branch contains a runnable sample of an application that exposes the same handler and exposes it via the standard java11 runtime and a custom runtime.

To build and deploy the function run the following:

# build the GraalVM native image and package the runime
./package.sh 
# deploy the application
serverless deploy

Invoke the function running the java11 runtime

http https://<function-host>/dev/hello/sample

Invoke the function running the custom runtime

http https://<function-host>/dev/hello-runtime/sample

Extended examples

DynamoDB

An extended example that adds DynamoDB to the sample can be found in the dynamodb branch.

The dynamodb-agent branch builds on the DynamoDB example and shows how to use the GraalVM native image trace agent (aka assisted configuration).