web-reactive-jvm-native-cds-aot-virtual-threads

In this project, we’ll create six apps using Spring Boot, Quarkus, and Micronaut. For each framework, one app will use blocking Web with Tomcat, and the other will use non-blocking Reactive with Netty. We’ll build both JVM and Native Docker images. For Spring Boot, additional images will test configurations with Virtual Threads, CDS, and AOT

Stars
14

web-reactive-jvm-native-cds-aot-virtual-threads

In this project, we will create six applications using Spring Boot, Quarkus, and Micronaut frameworks.

For each framework, we will implement one app with traditional blocking Web using Apache Tomcat and another app with non-blocking Reactive using Netty. We will also build both JVM and Native Docker images for the applications.

For the Spring Boot apps, we will build additional Docker images with different configurations, including enabling or not some Java optimizations like Virtual Threads (JEP 444), CDS (JEP 310), and AOT (JEP 295).

Proof-of-Concepts & Articles

On ivangfr.github.io, I have compiled my Proof-of-Concepts (PoCs) and articles. You can easily search for the technology you are interested in by using the filter. Who knows, perhaps I have already implemented a PoC or written an article about what you are looking for.

Additional Readings

Spring Boot Performance Benchmark

Java Frameworks Performance Benchmark

Applications

Latest Framework Version Used

Framework Version
Quarkus 3.12.2
Micronaut 4.5.1
Spring Boot 3.3.2

Prerequisites

Docker Images

The application's JVM and native Docker images can be found at this Docker Hub link.

Bash scripts

  • docker-build-spring-boot.sh: this script builds Spring Boot Docker images
  • docker-build-quarkus.sh: this script builds Quarkus Docker images
  • docker-build-micronaut.sh: this script builds Micronaut Docker images
  • remove-docker-images.sh: this script removes all Docker images
Related Projects