Quarkus 3.37 Beats Spring Boot: 50× Faster Startup and 70% Less Memory
Quarkus 3.37, released on June 24, 2026, introduces experimental JLink support, a full Hibernate ORM 7.4 upgrade, a reflection‑free Jackson serializer, AI‑native extensions, and numerous bug fixes, delivering up to 50‑fold faster startup, 70% lower memory usage, and measurable performance gains for Java cloud‑native applications.
Quarkus 3.37 was released on 2026‑06‑24. The release adds several core features and bug fixes aimed at improving startup speed, memory usage, data access, serialization, streaming, and AI integration.
Extension‑based modular JLink packaging
An experimental quarkus-jlink extension brings JPMS‑based custom runtime images to Quarkus. It compiles a complete module dependency graph, generates a self‑contained JLink image that does not require an external JDK, and supports ultra‑minimal base images such as ubi-micro and distroless. Container‑layer sharing allows multiple Quarkus applications to reuse the same JDK + Quarkus core layer.
Technical details:
Uses the quarkus-modularity extension to compute module graphs.
Requires Java 25+ because earlier JLink tools have compatibility issues.
Implements a layered loading model separating boot modules from dynamic modules, aligning with Project Leyden AOT compilation.
Typical commands:
quarkus extension add quarkus-jlink
quarkus build
# output in target/jlink-output/image/The extension is marked Experimental; its API may change before becoming the default packaging approach in Quarkus 4.x.
Hibernate ORM 7.4 upgrade
Quarkus 3.37 upgrades the Hibernate stack:
Hibernate ORM 7.4 (from 7.3)
Hibernate Reactive 3.4 (from 3.3)
Hibernate Search 8.4 (from 8.3)
Key behavior changes in Hibernate 7.4:
SQL‑level pagination limits are now enforced strictly. @CreationTimestamp and @UpdateTimestamp automatically add NOT NULL constraints.
Minimum supported PostgreSQL version is raised to 14.
Compatible with Jakarta Persistence 3.2, Jakarta Data 1.0, and Jakarta EE 11.
An experimental quarkus-data-hibernate extension generates repository implementations at compile time, validates @Find and @HQL queries against the entity model, supports Managed (dirty‑checking) and Stateless (explicit write) modes, and aligns with Jakarta Data annotations. Existing Panache code continues to work.
Reflection‑free Jackson serializer
Quarkus 3.37 enables a compile‑time generated Jackson serializer by default. Instead of runtime reflection, Quarkus uses Jandex indexing and Gizmo bytecode generation to produce a StdSerializer for each DTO during compilation.
Synthetic benchmark shows ~12 % higher throughput.
Native image size and startup time are further reduced.
GraalVM @RegisterForReflection configuration burden is lowered.
Explicit control (normally unnecessary):
quarkus.rest.jackson.optimization.enable-reflection-free-serializers=trueREST client streaming metadata extraction
Version 3.37 introduces RestMultiResponse for Server‑Sent Events, NDJSON and other streaming scenarios, allowing extraction of HTTP status codes and headers in addition to the message body.
@GET
@Path("/stream")
RestMultiResponse<MyEvent> streamEvents();Other important updates
Micrometer 1.16.6 – enhanced observability.
Jackson BOM 2.21.3/2.21.4 – serializer compatibility improvements.
Agroal 3.1.2/3.2 – connection‑pool stability.
Vert.x 4.5.28 and Netty 4.1.135 – network‑layer updates.
Spring @Transactional compatibility extension to lower migration cost.
Bug fixes and stability
#54084 – Fixed severe gRPC virtual‑thread concurrency bug (INTERNAL half‑close error).
#54089 – Added support for Spring @Transactional annotation.
#54053 – Resolved DevUI blocking issue in OIDC RP self‑reference scenarios.
#54054 – Added DN‑based trusted‑proxy check when IP check is unavailable.
AI native support – Quarkus LangChain4j
The Quarkus LangChain4j extension provides declarative AI services and RAG capabilities.
Declarative AI service example
@RegisterAiService
public interface CustomerSupportBot {
@SystemMessage("You are a helpful car rental assistant.")
@UserMessage("Help the customer with: {{question}}")
String chat(@MemoryId String sessionId, @V("question") String question);
}Key features:
Annotation‑driven AI service definition, injected via CDI.
Support for 20+ LLM providers (OpenAI, Anthropic, Ollama, Azure, Google Gemini, …).
Integration with 30+ vector stores (pgvector, Weaviate, Redis, Elasticsearch, Qdrant, …).
Automatic chat memory management with token‑window control.
Tool calling – AI agents can invoke Java methods at runtime.
RAG (Retrieval‑Augmented Generation) example
@Inject
EmbeddingStore<TextSegment> embeddingStore;
@Inject
EmbeddingModel embeddingModel;
public String answerWithContext(String question) {
Embedding questionEmbedding = embeddingModel.embed(question).content();
List<EmbeddingMatch<TextSegment>> relevant =
embeddingStore.findRelevant(questionEmbedding, 5);
// Inject retrieved context into the prompt
}Persistence is provided by Hibernate EmbeddingStore (LangChain4j 1.12.1+), allowing vector embeddings to be stored directly in PostgreSQL or MySQL without a separate vector database.
Summary
JLink modular packaging opens a new path for slimming Java applications.
Hibernate 7.4 modernizes the data‑access layer with stricter pagination, automatic NOT NULL constraints, and newer Jakarta compatibility.
Reflection‑free Jackson makes performance optimizations the default experience.
AI‑native extensions (LangChain4j, RAG) keep Java competitive in the LLM era.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Backend Technology
Focus on Java-related technologies: SSM, Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading. Occasionally cover DevOps tools like Jenkins, Nexus, Docker, and ELK. Also share technical insights from time to time, committed to Java full-stack development!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
