Friends of OpenJDK Today

Azul Provides the CRaC in AWS SnapStart Builds

December 20, 2022

Author(s)

At Azul, we are very excited about the Amazon Web Services launch of SnapStart for Lambdas.

SnapStart is based on the CRaC (Coordinated Restore at Checkpoint) API developed in OpenJDK, which was originated and led by Azul.

What is the CRaC API?

The CRaC API provides a common way for Java applications to coordinate with underlying checkpoint/restore mechanisms, allowing Java code to work seamlessly and portably across various checkpoint/restore mechanisms as they become available.

And Lambda, with its underlying use of the Firecracker MicroVM and its new support for the CRaC API, has now become such a platform. When coordinating via the CRaC API, Lambda can now take a snapshot of your application – when it’s already warmed up and ready to accept traffic at speed – and instantly relaunch any application instance from this snapshot. 

“AWS Lambda SnapStart for Java delivers up to 10x faster function startup performance at no extra cost,” the AWS announcement states. “Lambda SnapStart is a performance optimization that makes it easier for you to build highly responsive and scalable Java applications using AWS Lambda without having to provision resources or spend time and effort implementing complex performance optimizations.”

Momentum for the CRaC API is Building

CRaC has been gaining momentum by supporting a range of microservices frameworks. This is another huge step toward widespread acceptance and adoption of CRaC as a viable way of addressing warmup issues in Java while retaining all the benefits of the platform’s dynamic class ecosystem and proven speed and optimization.

The last few months have seen the major frameworks Quarkus, Micronaut, and Spring Boot incorporate CRaC checkpoint/restore coordination support.

The combination of framework support, the support in the OpenJDK CRaC project, and the emerging support in available runtimes has started the ball rolling.

Now, with a major Cloud platform providing built-in support for the CRaC API, it’s truly off to the races for CRaC.

Learn more

Learn more about the CRaC API:

Learn more about Lambda’s support for the CRaC API:

You can get your hands on a CRaC-supporting JDK to play with at https://cdn.azul.com/zulu/release/temporary/crac/bin

Related Articles

View All

Author(s)

Comments (3)

Your email address will not be published. Required fields are marked *

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Volker Simonis

Lambda is build on Firecracker (https://firecracker-microvm.github.io/) so the first sentence in the second paragraph of the “What is the CRaC API?” section should read “And Lambda, with its underlying use of the Firecracker MicroVM..”.

Thanks,
Volker

Geertjan Wielenga

Fixed!

Volker Simonis

Thanks. Can you please fix https://www.azul.com/blog/aws-snapstart-builds-momentum-for-the-crac-api/ as well? It has the same problem.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard