<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CRaC on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/crac/</link><description>Recent content in CRaC on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 31 Jul 2026 16:16:40 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/crac/index.xml" rel="self" type="application/rss+xml"/><item><title>Keeping Java Hot This Summer</title><link>https://foojayio.github.io/website/today/keeping-java-hot-this-summer-august-2026/</link><pubDate>Fri, 31 Jul 2026 09:50:18 +0000</pubDate><guid>https://foojayio.github.io/website/today/keeping-java-hot-this-summer-august-2026/</guid><description>&lt;p&gt;Summer conference season goes quiet. Most major Java events wrap by June, CFPs go dark while we&amp;rsquo;re waiting for the results and a lot of us - if we decide to carry on with the work - use August to either catch up on backlog, or training ( and I mean mental exercise here, although I&amp;rsquo;m sure some of you hit the gym more often too 😉 ).&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re in the northeastern US or eastern Canada and are around next month with some extra time to spare, this may be a good excuse to join your local community to watch and learn from a technical session on a problem most of us have hit in production, delivered by &lt;a href="https://gsjug.org/profiles/simon-ritter.html" target="_blank" rel="noopener noreferrer"&gt;Simon Ritter,&lt;/a&gt;
 a Java Champion who&amp;rsquo;s spent years in the JVM internals.&lt;/p&gt;</description></item><item><title>OpenJDK January 2026 Critical Patch Update and Patch Set Update Released</title><link>https://foojayio.github.io/website/today/openjdk-january-2026-critical-patch-update-and-patch-set-update-released/</link><pubDate>Wed, 21 Jan 2026 08:32:01 +0000</pubDate><guid>https://foojayio.github.io/website/today/openjdk-january-2026-critical-patch-update-and-patch-set-update-released/</guid><description>&lt;p&gt;The January 2026 OpenJDK quarterly updates are now (or will soon be) available from various OpenJDK distributors. This quarterly release brings important security fixes and updates to all currently supported Java versions.&lt;/p&gt;
&lt;h2 id="h2-0-the-quarterly-update-cycle"&gt;The Quarterly Update Cycle&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Every three months&lt;/strong&gt; (in January, April, July, and October), the OpenJDK project releases &lt;strong&gt;security updates, bug fixes, and improvements&lt;/strong&gt; for &lt;strong&gt;all supported Java versions&lt;/strong&gt;. This predictable schedule helps organizations plan their Java updates and maintain secure, stable production environments.&lt;/p&gt;</description></item><item><title>Faster Java Warmup: CRaC versus ReadyNow</title><link>https://foojayio.github.io/website/today/faster-java-warmup-crac-versus-readynow/</link><pubDate>Fri, 06 Jun 2025 17:23:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/faster-java-warmup-crac-versus-readynow/</guid><description>&lt;p&gt;&lt;em&gt;This is the first blog post in a series on faster Java application warmup with ReadyNow.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Azul has developed different solutions to help achieve faster Java application warmup, including Coordinated Restore at Checkpoint (CRaC) and ReadyNow. While CRaC and ReadyNow aim to solve the same challenge, they take different approaches. This post explains the differences.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the challenges in a Java system is application warmup.&lt;/p&gt;
&lt;p&gt;Java is the beating heart of many applications. It powers countless applications, from small business processes on a single machine to massive clusters handling vast amounts of data and transactions. Azul optimizes performance, especially Java warmup in complex setups and time-sensitive use cases.&lt;/p&gt;</description></item><item><title>Demo Application with CRaC and Loading Data in Memory</title><link>https://foojayio.github.io/website/today/demo-application-with-crac-and-loading-data-in-memory/</link><pubDate>Thu, 13 Mar 2025 08:11:19 +0000</pubDate><guid>https://foojayio.github.io/website/today/demo-application-with-crac-and-loading-data-in-memory/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;a href="https://docs.azul.com/core/crac/crac-introduction" target="_blank" rel="noopener noreferrer"&gt;Coordinated Restore at Checkpoint (CRaC)&lt;/a&gt;
 is a JDK project initiated by Azul. With CRaC, you can start Java programs with a shorter time to the first transaction and less time and resources to achieve full code speed. This is achieved by taking a snapshot (checkpoint) of a fully warmed-up Java process and launching one or more new JVMs from that snapshot.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I have been experimenting with CRaC on a Raspberry Pi in 2023 and blogged about it, &lt;a href="https://webtechie.be/post/2023-06-15-crac-on-raspberry-pi/" target="_blank" rel="noopener noreferrer"&gt;first when it didn&amp;rsquo;t work yet&lt;/a&gt;
, and a &lt;a href="https://webtechie.be/post/2023-10-16-crac-on-raspberry-pi-update/" target="_blank" rel="noopener noreferrer"&gt;second time when it did work perfectly&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Warp: the new CRaC engine</title><link>https://foojayio.github.io/website/today/warp-the-new-crac-engine/</link><pubDate>Wed, 18 Dec 2024 16:04:48 +0000</pubDate><guid>https://foojayio.github.io/website/today/warp-the-new-crac-engine/</guid><description>&lt;p&gt;&lt;strong&gt;Many regular Foojay readers are already familiar with project CRaC - a technology that can checkpoint (suspend) running Java application into a snapshot image and later restore it to the already warmed-up state. The most common motivation for this is significantly faster startup than if the application (and JVM) started normally. Traditionally this was supported by CRIU (Checkpoint and Restore in Userspace), coming with the burden of root privileges required for execution. Since Azul Zulu October 2024 release, this pain-point can be gone: meet Warp.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Foojay Podcast #55: Embedded Java, Part 2</title><link>https://foojayio.github.io/website/today/foojay-podcast-55/</link><pubDate>Mon, 01 Jul 2024 08:21:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-55/</guid><description>&lt;p&gt;As a backend developer, you may not realize that Java was initially born on embedded devices like set-top boxes and gateways. We discussed this topic for the first time almost three years ago in &lt;a href="https://foojayio.github.io/website/today/foojay-podcast-2/"&gt;Foojay Podcast #2 with James Gosling, Johan Vos, Erik Costlow, and Frank Delporte&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;In this episode #55, we look into the history of the Java Micro Edition and how things evolved. Nowadays, with processors becoming increasingly powerful, we can run the exact same Java runtime on any Linux system, from the biggest cloud servers to the smallest Raspberry Pi Zero.&lt;/p&gt;</description></item><item><title>Foojay Podcast #52 from JCON in Cologne!</title><link>https://foojayio.github.io/website/today/foojay-podcast-52/</link><pubDate>Mon, 10 Jun 2024 09:32:12 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-52/</guid><description>&lt;p&gt;This is part 4 of the JCON interviews!&lt;/p&gt;
&lt;p&gt;In this episode, we have 5 new guests for you.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We start with garbage collectors and Intelligence Cloud, a tool created by Azul to find out which of your code is actually used in production and which dependencies are known to have vulnerabilities. My colleague Gerrit Grunwald was at JCON to give a talk about these subjects.&lt;/li&gt;
&lt;li&gt;With Balkrishna Rawool we dove into Virtual Threads, a very interesting topic as concurrency and threads can be challenging&amp;hellip;&lt;/li&gt;
&lt;li&gt;Piotr Przybyl came to JCON to give a talk about Test Containers and how to test your application in an environment that is similar to your production environment. Another important topic related to testing is Flaky Tests. How do you handle tests that only fail from time to time and make your whole test report unreliable?&lt;/li&gt;
&lt;li&gt;François Martin had a talk about this subject, and he came to the conference together with Annelore Egger, who was one of the many volunteers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h2-0-video"&gt;Video&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/9q7kSibmVBA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
		&lt;/div&gt;

&lt;h2 id="h2-1-podcast-apps"&gt;Podcast Apps&lt;/h2&gt;
&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>SpringBoot 3.2 + CRaC</title><link>https://foojayio.github.io/website/today/springboot-3-2-crac/</link><pubDate>Tue, 28 Nov 2023 13:04:41 +0000</pubDate><guid>https://foojayio.github.io/website/today/springboot-3-2-crac/</guid><description>&lt;p&gt;Last week Spring 6.1 and &lt;a href="https://spring.io/blog/2023/11/23/spring-boot-3-2-0-available-now" title="SpringBoot 3.2" target="_blank" rel="noopener noreferrer"&gt;SpringBoot 3.2&lt;/a&gt;
 were released and they both came with full support for CRaC (Coordinated Restore at Checkpoint).&lt;/p&gt;
&lt;p&gt;If you want to learn more about CRaC, feel free to read about it &lt;a href="https://docs.azul.com/core/crac/crac-introduction" title="here" target="_blank" rel="noopener noreferrer"&gt;here&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CRaC is an &lt;a href="https://wiki.openjdk.org/display/crac" title="OpenJDK project" target="_blank" rel="noopener noreferrer"&gt;OpenJDK project&lt;/a&gt;
 that can &amp;ldquo;snapshot&amp;rdquo; a running JVM (Java Virtual Machine) and store its state, including your application, to disk. Then, at another point in time, you can restore the JVM from the saved checkpoint back to memory. With this, one can start an application, warm it up, and create a checkpoint. Restoring from the saved checkpoint back to memory mainly relies on disk I/O, which means it is really fast (in the range of milliseconds).&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Gerrit and Ivar's North America JUG Tour!</title><link>https://foojayio.github.io/website/today/gerrit-and-ivars-north-america-jug-tour/</link><pubDate>Sun, 10 Sep 2023 07:55:15 +0000</pubDate><guid>https://foojayio.github.io/website/today/gerrit-and-ivars-north-america-jug-tour/</guid><description>&lt;p&gt;&lt;strong&gt;Aloha, because I will be in the US this month, I decided to do a little Java User Group tour again. Ivar Grimstad from the Eclipse Foundation will join me and we will visit a couple of JUGs in the week from the 18th to the 22nd of September.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Just in case you are in the area and interested to join one of our sessions or if you only would like to meet us in person, please check out the following links to get further information about the location etc.&lt;/p&gt;</description></item><item><title>Running a CRaC Java application on Raspberry Pi</title><link>https://foojayio.github.io/website/today/running-a-crac-java-application-on-raspberry-pi/</link><pubDate>Wed, 05 Jul 2023 12:23:19 +0000</pubDate><guid>https://foojayio.github.io/website/today/running-a-crac-java-application-on-raspberry-pi/</guid><description>&lt;p&gt;With the April release of the Zulu Build of OpenJDK, Azul announced &lt;a href="https://www.azul.com/blog/reduce-java-application-startup-and-warmup-times-with-crac/" target="_blank" rel="noopener noreferrer"&gt;the integration of CRaC in its version 17 of Java for Linux&lt;/a&gt;
. &lt;a href="https://www.azul.com/products/components/crac/" target="_blank" rel="noopener noreferrer"&gt;Coordinated Restore at Checkpoint (CRaC)&lt;/a&gt;
 is a feature introduced in OpenJDK to improve Java&amp;rsquo;s application startup and warmup times to milliseconds from seconds or even minutes, by allowing a running application to pause, snapshot its state, and restart later, even on a different machine.&lt;/p&gt;
&lt;p&gt;CRaC is the final step after previous projects by Azul in multiple client projects in the automotive and IoT industry. Infotainment systems for car, gateways in electronic systems, and other use-cases require high-speed startup of their applications running on embedded ARM32 and ARM64 systems.&lt;/p&gt;</description></item><item><title>Reduce Java Application Startup and Warmup Times with CRaC</title><link>https://foojayio.github.io/website/today/reduce-java-application-startup-and-warmup-times-with-crac/</link><pubDate>Tue, 16 May 2023 11:21:12 +0000</pubDate><guid>https://foojayio.github.io/website/today/reduce-java-application-startup-and-warmup-times-with-crac/</guid><description>&lt;p&gt;When a Java application runs, the JVM goes through the process of loading, initializing, and optimizing the code used by the application, including libraries, frameworks, and other components to reach the optimal performance level.&lt;/p&gt;
&lt;p&gt;Each time the application restarts, it has no record or memory of previous times it has run and the work it performed.&lt;/p&gt;
&lt;p&gt;As a result, it has to restart, extending valuable startup and warmup times and using precious resources.&lt;/p&gt;</description></item><item><title>How to Run a Java Application with CRaC in a Docker Container</title><link>https://foojayio.github.io/website/today/how-to-run-a-java-application-with-crac-in-a-docker-container/</link><pubDate>Wed, 01 Feb 2023 09:41:11 +0000</pubDate><guid>https://foojayio.github.io/website/today/how-to-run-a-java-application-with-crac-in-a-docker-container/</guid><description>&lt;p&gt;CRaC (Coordinated Restore at Checkpoint) is &lt;a href="https://openjdk.org/projects/crac/" target="_blank" rel="noopener noreferrer"&gt;an OpenJDK project&lt;/a&gt;
 that was &lt;a href="https://www.azul.com/blog/aws-snapstart-builds-momentum-for-the-crac-api/" target="_blank" rel="noopener noreferrer"&gt;developed by Azul&lt;/a&gt;
 to solve the problem of &amp;ldquo;slow&amp;rdquo; startup times of the Java Virtual Machine in a microservice environment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The most up-to-date guidelines can be found on &amp;ldquo;&lt;a href="https://docs.azul.com/core/crac/crac-guidelines.html#running-crac-in-a-virtualized-environment-docker" target="_blank" rel="noopener noreferrer"&gt;Coordinated Restore at Checkpoint Usage Guidelines&lt;/a&gt;
&amp;rdquo; in the Azul Docs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When the JVM runs your application code, it does things like interpreting, compiling and optimizing code to make your application run as fast as possible under the given workload. This is great but can take some time and especially when you run short lived microservices you don&amp;rsquo;t want to wait until the JVM has produced the most optimized code.&lt;/p&gt;</description></item><item><title>Azul Provides the CRaC in AWS SnapStart Builds</title><link>https://foojayio.github.io/website/today/azul-provides-the-crac-in-aws-snapstart-builds/</link><pubDate>Tue, 20 Dec 2022 07:45:54 +0000</pubDate><guid>https://foojayio.github.io/website/today/azul-provides-the-crac-in-aws-snapstart-builds/</guid><description>&lt;p&gt;At Azul, we are very excited about the Amazon Web Services launch of &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html" target="_blank" rel="noopener noreferrer"&gt;SnapStart for Lambdas&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;SnapStart is based on the CRaC (Coordinated Restore at Checkpoint) API developed in OpenJDK, which was originated and led by Azul.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the CRaC API?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://openjdk.org/projects/crac/" target="_blank" rel="noopener noreferrer"&gt;CRaC API&lt;/a&gt;
 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.&lt;/p&gt;</description></item><item><title>Superfast Application Startup: Java on CRaC</title><link>https://foojayio.github.io/website/today/superfast-application-startup-java-on-crac/</link><pubDate>Mon, 30 May 2022 05:37:24 +0000</pubDate><guid>https://foojayio.github.io/website/today/superfast-application-startup-java-on-crac/</guid><description>&lt;p&gt;It&amp;rsquo;s now twenty-seven years since Java was first released, and it continues to be one of the most popular platforms for applications, especially on servers.&lt;/p&gt;
&lt;p&gt;One of the reasons for this is the &lt;a href="https://en.wikipedia.org/wiki/Java_virtual_machine" target="_blank" rel="noopener noreferrer"&gt;Java Virtual Machine (JVM)&lt;/a&gt;
. This provides a managed runtime environment that removes the need for developers to deal with things like memory management; the garbage collector takes care of this for you. Another significant advantage of the JVM is the use of bytecodes that can be converted to native instructions at runtime using a Just-In-Tim (JIT) compiler.&lt;/p&gt;</description></item></channel></rss>