Skip to content

Quarkus Architecture

🎨 Quarkus 3.x Architecture: Visual Blueprint & Learning Guide

Section titled “🎨 Quarkus 3.x Architecture: Visual Blueprint & Learning Guide”
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'fontFamily': 'Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif',
    'fontSize': '13px',
    'primaryTextColor': '#0f172a',
    'lineColor': '#475569',
    'edgeLabelBackground': '#ffffff',
    'subGraphTitleColor': '#0f172a'
  }
}}%%
flowchart TB
    %% ==========================================
    %% 1. APPLICATION LAYER
    %% ==========================================
    subgraph L1["🟦 1. APPLICATION LAYER"]
        APP["💻 <b>User Application Code</b><br/><i>Domain Models, REST Services, CDI Beans & Business Logic</i>"]
        API["🔌 <b>Jakarta EE 10 API Standards</b><br/><code>jakarta.ws.rs</code> • <code>jakarta.enterprise</code> • <code>jakarta.persistence</code> • <code>jakarta.validation</code>"]
        APP --> API
    end

    %% ==========================================
    %% 2. QUARKUS RUNTIME EXTENSIONS
    %% ==========================================
    subgraph L2["🟩 2. MODULAR QUARKUS EXTENSIONS (RUNTIME)"]
        direction TB
        subgraph COL1["Web & Dependency Injection"]
            REST["⚡ <b>RESTEasy Reactive</b><br/>HTTP/3 • io_uring • Non-blocking"]
            CDI["💉 <b>ArC CDI Container</b><br/>CDI Lite • Build-Compatible Ext"]
        end
        subgraph COL2["Persistence & Event Streaming"]
            ORM["🗄️ <b>Hibernate ORM 6.2</b><br/>+ Hibernate Reactive 2.0"]
            MSG["📨 <b>Reactive Messaging</b><br/>Mutiny 2 • Java Flow API"]
        end
        subgraph COL3["Identity & Operational Telemetry"]
            SEC["🛡️ <b>Security & Identity</b><br/>OIDC • JWT • RBAC Controls"]
            OBS["📊 <b>MicroProfile 6 & OTel</b><br/>OpenTelemetry • Metrics • Admin Port"]
        end
    end

    %% ==========================================
    %% 3. QUARKUS CORE & REACTIVE ENGINE
    %% ==========================================
    subgraph L3["🟧 3. QUARKUS REACTIVE CORE"]
        CORE["⚙️ <b>Eclipse Vert.x Reactive Engine & SmallRye Config</b><br/>Single Netty Non-blocking Event Loop • @ConfigMapping Build-Time Type-Safe Properties"]
    end

    %% ==========================================
    %% 4. BUILD-TIME AUGMENTATION (AOT)
    %% ==========================================
    subgraph L4["🟥 4. BUILD-TIME AUGMENTATION ENGINE (AOT PIPELINE)"]
        AOT["🔬 <b>Ahead-of-Time Bytecode Transformation & Pre-recording</b><br/>Jandex Indexing • Reflection Elimination • Static Class Initialization • Build-Time Metadata Bake"]
    end

    %% ==========================================
    %% 5. DUAL TARGET RUNTIMES
    %% ==========================================
    subgraph L5["🟪 5. DUAL TARGET EXECUTION RUNTIMES"]
        JVM["☕ <b>Standard JVM Mode</b><br/>Java 17 / 21+ (HotSpot)<br/>Virtual Threads (Project Loom)<br/><i>Ideal for long-running services</i>"]
        NATIVE["🚀 <b>GraalVM Native Image</b><br/>Substrate VM Standalone Binary<br/>0.01s Boot • ~30MB RSS Memory<br/><i>Ideal for Serverless & Containers</i>"]
    end

    %% ==========================================
    %% 6. HOST INFRASTRUCTURE
    %% ==========================================
    subgraph L6["⬛ 6. HOST OPERATING SYSTEM & CONTAINER INFRASTRUCTURE"]
        HOST["🐧 <b>Red Hat UBI 9 (Default Base) • Linux </b><br/>Cloud Native Containers • Kubernetes / OpenShift"]
    end

    %% Flow connections
    API --> REST & CDI & ORM & MSG & SEC & OBS
    REST & CDI & ORM & MSG & SEC & OBS --> CORE
    CORE ==>|Ahead-of-Time Augmentation| AOT
    AOT ==>|Standard Bytecode + Dynamic JIT| JVM
    AOT ==>|Substrate VM AOT Compilation| NATIVE
    JVM --> HOST
    NATIVE --> HOST

    %% Hierarchy Layer Styles
    style L1 fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e3a8a
    style L2 fill:#f0fdf4,stroke:#16a34a,stroke-width:2px,color:#14532d
    style L3 fill:#fffbeb,stroke:#d97706,stroke-width:2px,color:#78350f
    style L4 fill:#fff1f2,stroke:#e11d48,stroke-width:2px,color:#881337
    style L5 fill:#faf5ff,stroke:#9333ea,stroke-width:2px,color:#581c87
    style L6 fill:#f8fafc,stroke:#475569,stroke-width:2px,color:#0f172a

    %% Sub-cluster styles
    style COL1 fill:#ffffff,stroke:#86efac,stroke-width:1.5px,stroke-dasharray: 4 2
    style COL2 fill:#ffffff,stroke:#86efac,stroke-width:1.5px,stroke-dasharray: 4 2
    style COL3 fill:#ffffff,stroke:#86efac,stroke-width:1.5px,stroke-dasharray: 4 2

    %% Node Styles
    style APP fill:#dbeafe,stroke:#1d4ed8,stroke-width:1.5px,color:#1e3a8a
    style API fill:#bfdbfe,stroke:#2563eb,stroke-width:2px,color:#1e40af

    style REST fill:#dcfce7,stroke:#15803d,stroke-width:1.5px,color:#14532d
    style CDI fill:#dcfce7,stroke:#15803d,stroke-width:1.5px,color:#14532d
    style ORM fill:#dcfce7,stroke:#15803d,stroke-width:1.5px,color:#14532d
    style MSG fill:#dcfce7,stroke:#15803d,stroke-width:1.5px,color:#14532d
    style SEC fill:#dcfce7,stroke:#15803d,stroke-width:1.5px,color:#14532d
    style OBS fill:#dcfce7,stroke:#15803d,stroke-width:1.5px,color:#14532d

    style CORE fill:#fef3c7,stroke:#b45309,stroke-width:2px,color:#78350f
    style AOT fill:#ffe4e6,stroke:#be123c,stroke-width:2px,color:#881337

    style JVM fill:#f3e8ff,stroke:#7e22ce,stroke-width:2px,color:#581c87
    style NATIVE fill:#f3e8ff,stroke:#7e22ce,stroke-width:2px,color:#581c87

    style HOST fill:#e2e8f0,stroke:#334155,stroke-width:2px,color:#0f172a

[!TIP] Quarkus 3.x Architectural Superpowers:

  • Build-Time Augmentation (AOT): All dependency injection wiring, configuration binding, and bytecode optimizations occur at build time, eliminating runtime reflection and slow dynamic class loading.
  • Unified Reactive Core: Eclipse Vert.x single event loop handles non-blocking IO with HTTP/3 & io_uring support underneath both imperative and reactive code.
  • Dual Execution Modes: Seamless deployment into Standard JVM Mode (optimized for Java 17/21+ Virtual Threads) or GraalVM Native Image (0.01s boot time and ~30MB memory footprint).

🧠 The Core Mental Model: Why Quarkus is Fast

Section titled “🧠 The Core Mental Model: Why Quarkus is Fast”

Before diving into the layers, remember this single core philosophy:

Traditional Java (Spring / Classic EE) ➔

Section titled “Traditional Java (Spring / Classic EE) ➔”
  • Inspect & Wire at Runtime

    • Class scanning ➔ Reflection ➔ Proxy creation ➔ Config parsing ➔ Bean wiring
  • ⏱️ Startup: 8–25 seconds | 💾 Memory: 300–600 MB

  • Inspect & Pre-Bake at Build Time (AOT)

    • All scanning, reflection elimination, and wiring happen ONCE during build.
  • ⏱️ Startup: 0.01–1.2 seconds | 💾 Memory: 25–150 MB

[!TIP] The Bakery Analogy:

  • Traditional Frameworks: Like a restaurant that waits until the customer walks in the door to mix the flour, knead the dough, and bake the bread from scratch.
  • Quarkus: Pre-bakes the bread at the factory (Build-Time Augmentation). When the customer arrives (Runtime Boot), it only needs to turn on the warming tray.

🧭 The Learning Walkthrough: Layer-by-Layer Guide

Section titled “🧭 The Learning Walkthrough: Layer-by-Layer Guide”

Following the architecture diagram from top to bottom, here is how each layer and component functions:


Memory Hook: Standard code, zero lock-in — write modern jakarta.*, let Quarkus do the magic.

  • What you write: Domain models, REST resource classes, business services, entities, and CDI event observers.
  • Familiar Standards: You write standard, idiomatic enterprise Java code without needing proprietary vendor frameworks for core business logic.

🔌 1B. Jakarta EE 10 API Standards (API)

Section titled “🔌 1B. Jakarta EE 10 API Standards (API)”

In Quarkus 3.x, the entire ecosystem migrated from javax.* to jakarta.* following Jakarta EE 10:

SpecificationOld Package (Quarkus 2.x)New Package (Quarkus 3.x)
REST APIs (JAX-RS)javax.ws.rs.*jakarta.ws.rs.*
CDI (Dependency Injection)javax.enterprise.*, javax.inject.*jakarta.enterprise.*, jakarta.inject.*
Persistence (JPA)javax.persistence.*jakarta.persistence.*
Bean Validationjavax.validation.*jakarta.validation.*
Servletsjavax.servlet.*jakarta.servlet.*

[!WARNING] Gotcha Alert: JDK-native packages such as javax.net.ssl, javax.crypto.*, and javax.sql.* are part of the Java Standard Library and remain javax.*. Do not rename them!

[!NOTE] Quarkus Update Tool: Automates 90%+ of package renames using OpenRewrite:

Terminal window
quarkus update --stream=3.0

🟩 Layer 2: Modular Quarkus Extensions (Runtime)

Section titled “🟩 Layer 2: Modular Quarkus Extensions (Runtime)”

Memory Hook: The extension toolkit — organized into 3 functional pillars.

🌐 Pillar 1: Web & Dependency Injection (COL1)

Section titled “🌐 Pillar 1: Web & Dependency Injection (COL1)”
  • ⚡ RESTEasy Reactive (REST):
    • Unified Engine: Handles both blocking and non-blocking workloads automatically. If your method returns a reactive Uni/Multi, it stays on the event loop; if it’s traditional blocking, Quarkus routes it to a worker thread or Virtual Thread.
    • HTTP/3 Support: Native QUIC protocol support fixes head-of-line blocking over UDP.
    • Linux io_uring: High-performance asynchronous kernel I/O ring buffer.
  • 💉 ArC CDI Container (CDI):
    • CDI Lite: Jakarta EE 10 standardized subset of CDI designed specifically for ahead-of-time (AOT) compilation.
    • Build Compatible Extensions (BCE): Replaces heavy runtime portable extensions with extensions that run during compilation.
    • Zero Runtime Reflection: All bean injection graphs, interceptors, and proxies are generated into raw bytecode at build time.

💾 Pillar 2: Persistence & Event Streaming (COL2)

Section titled “💾 Pillar 2: Persistence & Event Streaming (COL2)”
  • 🗄️ Hibernate ORM 6.2 + Hibernate Reactive 2.0 (ORM):
    • The Biggest Breaking Change in 3.x: Major semantic query parser overhaul from HQL to SQM.
    • StatelessSession Injection: Direct CDI injection of StatelessSession for high-throughput batch operations without L1 cache overhead.
    • @PersistenceUnitExtension: Declarative statement inspection.
    • Migration note: Update tool handles package renames, but custom HQL/JPQL queries and Hibernate SPIs require manual testing.
  • 📨 Reactive Messaging (MSG):
    • Mutiny 2: Upgraded reactive programming library featuring Uni (0 or 1 item) and Multi (0 to N streaming items).
    • Java Flow API: Replaced external Reactive Streams dependencies with the JDK’s built-in java.util.concurrent.Flow API (standard since Java 9).
    • Connectors: Kafka, AMQP, MQTT, AWS SQS/SNS.

🛡️ Pillar 3: Identity & Operational Telemetry (COL3)

Section titled “🛡️ Pillar 3: Identity & Operational Telemetry (COL3)”
  • 🛡️ Security & Identity (SEC):
    • Built-in OpenID Connect (OIDC) and JSON Web Tokens (JWT).
    • Declarative Role-Based Access Control (RBAC) using standard @RolesAllowed, @Authenticated, and @PermitAll.
    • Unified configuration prefix: quarkus.oidc.*.
  • 📊 MicroProfile 6 & OpenTelemetry (OBS):
    • OpenTelemetry Standard: Fully replaced legacy OpenTracing. Configuration namespace is unified under quarkus.otel.*.
    • Admin Network Interface: Allows binding management endpoints (/q/health, /q/metrics) to an isolated port or internal network interface separate from public HTTP traffic.
    • /q/info: Exposes build and application git metadata.

Memory Hook: The non-blocking nervous system — Vert.x handles the traffic, SmallRye validates the config.

⚙️ Eclipse Vert.x Reactive Engine & SmallRye Config (CORE)

Section titled “⚙️ Eclipse Vert.x Reactive Engine & SmallRye Config (CORE)”
  • Eclipse Vert.x Core Engine:
    • Underneath everything sits an event-driven Netty backbone.
    • A small pool of event-loop threads (usually 2x CPU cores) multiplexes thousands of concurrent connections.
    • Integrated with Linux io_uring for zero-copy, kernel-level async I/O.
  • SmallRye Config (@ConfigMapping):
    • Replaces loose @ConfigProperty with type-safe, immutable interfaces:
      @ConfigMapping(prefix = "banking.service")
      public interface BankingConfig {
      String currency();
      BigDecimal transferLimit();
      Optional<String> webhookUrl();
      }
    • Validated at build time: typos and missing mandatory variables fail the build before deployment.

🟥 Layer 4: Build-Time Augmentation Engine (AOT Pipeline)

Section titled “🟥 Layer 4: Build-Time Augmentation Engine (AOT Pipeline)”

Memory Hook: Do it once at compile time, never do it at startup.

Traditional Java frameworks re-invent the wheel on every restart (classpath scanning, reflection parsing, proxy generation, and bean graph wiring).

🔬 The Quarkus AOT Build Pipeline (AOT):

Section titled “🔬 The Quarkus AOT Build Pipeline (AOT):”
  1. Jandex Pre-Indexing: Reads bytecode and builds an offline indexed catalog of classes, methods, and annotations.
  2. Bytecode Transformation (ASM): Inlines dependency injection calls directly into bytecode, removing the need for runtime reflection.
  3. Build Compatible Extensions (BCE): Executes extension code during compilation to register synthetic beans and observers.
  4. Static Initialization & Pre-Recording: Executes static blocks, initializes JPA entity metamodels, and bakes routing tables directly into static class state recorded into the binary.

🟪 Layer 5: Dual Target Execution Runtimes

Section titled “🟪 Layer 5: Dual Target Execution Runtimes”

Memory Hook: Bifurcated runtime — peak throughput on HotSpot, or instant boot on GraalVM.

┌──► JVM Mode (HotSpot) ───► Maximum throughput + Virtual Threads
Quarkus AOT Output (Classes) ┤
└──► GraalVM Native Image ─► 0.01s Cold start + 30MB RAM
  • Engine: OpenJDK / HotSpot (Java 17 / 21+) with C2 Just-In-Time (JIT) compiler.
  • Virtual Threads (Project Loom): Quarkus 3.x integrates with Java 21 Virtual Threads (@RunOnVirtualThread), allowing blocking imperative code to scale like reactive code.
  • Best for: Long-running services, complex dynamic classpaths, and maximum peak arithmetic throughput.
  • Engine: Substrate VM Ahead-Of-Time (AOT) compiler.
  • Closed-World Assumption: Everything the application will ever execute must be discoverable and compiled at build time. Dynamic code generation and unconfigured reflection are removed.
  • Metrics: ~0.01s boot time, 25–35 MB RSS memory footprint.
  • Best for: Serverless (AWS Lambda, Google Cloud Run), scale-to-zero microservices, and Kubernetes ephemeral jobs.
DimensionStandard JVM Mode (JVM)GraalVM Native Image (NATIVE)
Startup TimeFast (~0.8s - 1.5s)Instantaneous (~0.01s - 0.05s)
Memory Footprint (RSS)Moderate (~120MB - 200MB)Extremely Low (~25MB - 40MB)
Peak ThroughputMaximum (JIT profile optimizations)Very High (PGO-assisted AOT)
Build DurationRapid seconds (mvn compile)Minutes (AOT whole-world analysis)
Concurrency ModelPlatform & Virtual Threads (Loom)Native OS Threads & Event Loop
Best FitLong-running microservices, high churnServerless, scaling to zero, edge pods

⬛ Layer 6: Host Operating System & Container Infrastructure

Section titled “⬛ Layer 6: Host Operating System & Container Infrastructure”

Memory Hook: Hardened container base and modern Linux kernel primitives.

🐧 Red Hat UBI 9 & Container Base (HOST)

Section titled “🐧 Red Hat UBI 9 & Container Base (HOST)”
  • UBI 9 Default: Red Hat Universal Base Image 9 is now the default builder and runtime container image in Quarkus 3.x (replacing UBI 8).
  • Linux io_uring Kernel Acceleration: Replaces traditional epoll system calls with dual shared memory rings between userland and the Linux kernel, minimizing context switches.
  • Container & Kubernetes / OpenShift Native: Pre-optimized images and zero-config Kubernetes manifests for seamless cloud-native deployments.

📊 Master Recall Cheatsheet: Quarkus 2.x vs 3.x

Section titled “📊 Master Recall Cheatsheet: Quarkus 2.x vs 3.x”
Feature / AreaQuarkus 2.xQuarkus 3.xMemory Trigger
Java BaselineJava 11Java 17+ (Java 21 ready)Java 11 deprecated
Enterprise StandardJava EE / javax.*Jakarta EE 10 / jakarta.*Package rename across REST, CDI, JPA
CDI SpecificationCDI 2.0 FullCDI Lite + BCEBuild Compatible Extensions (AOT)
REST LayerRESTEasy Classic / ReactiveRESTEasy Reactive (Default)HTTP/3 & io_uring built-in
Reactive LibraryMutiny 1 (Reactive Streams)Mutiny 2 (Java Flow API)Standard java.util.concurrent.Flow
ORM LayerHibernate 5Hibernate ORM 6.2Major breaking changes in queries/APIs
TracingOpenTracing / JaegerOpenTelemetry (OTel)quarkus.otel.* autoconfiguration
Configuration@ConfigProperty@ConfigMapping InterfacesType-safe, immutable, build-time validated
Base OS ImageRed Hat UBI 8Red Hat UBI 9Modern kernel & long-term maintenance

Test your understanding before expanding each card.

1. What is the single biggest breaking change for developers migrating to Quarkus 3.x?

Answer: The Jakarta EE 10 migration. All javax.* packages (JAX-RS, CDI, JPA, Bean Validation, Servlets) were renamed to jakarta.*. The migration is largely automated using quarkus update --stream=3.0.

2. Are all javax.* packages renamed to jakarta.* in Quarkus 3.x?

Answer: No. JDK standard library packages like javax.crypto.*, javax.net.ssl.*, and javax.sql.* remain javax.* because they are part of the Java SE runtime, not Jakarta EE.

3. Why does Quarkus start in milliseconds while traditional frameworks take seconds?

Answer: Quarkus shifts heavy framework operations (classpath scanning, annotation reflection parsing, and proxy generation) from runtime boot to compile time via its Build-Time Augmentation Engine. At runtime, it only loads pre-recorded bytecode.

4. What is the purpose of CDI Lite in Quarkus 3.x?

Answer: CDI Lite is a standardized lightweight subset of CDI introduced in Jakarta EE 10. It replaces runtime-heavy portable extensions with Build Compatible Extensions (BCE), enabling fast build-time analysis and zero-reflection dependency injection.

5. How does RESTEasy Reactive handle blocking database calls?

Answer: RESTEasy Reactive inspects method signatures at build time. If a method returns a reactive type (Uni/Multi), it executes directly on the non-blocking Vert.x event loop. If it performs blocking I/O (like traditional JDBC), Quarkus automatically offloads it to a worker thread pool or a Virtual Thread.

6. What is the “Closed-World Assumption” in GraalVM Native Image?

Answer: All code, classes, methods, and reflection metadata that can possibly be called at runtime must be known at build time. GraalVM analyzes the entire call graph and removes unreachable bytecode, producing a minimal native binary.

7. Why did Quarkus 3.x upgrade its default base image to UBI 9?

Answer: Red Hat Universal Base Image 9 (UBI 9) provides modern glibc compatibility, security fixes, and Linux kernel feature support (such as io_uring) while succeeding the aging UBI 8 lifecycle.

8. When should you choose Standard JVM Mode over GraalVM Native Image?

Answer:

  • Choose JVM Mode: For long-running microservices where high peak throughput and JIT optimizations matter most, or when relying on dynamic class loading / reflection libraries.
  • Choose Native Mode: For serverless functions (AWS Lambda), scale-to-zero workloads, or high-density containers where sub-50ms startup time and minimal memory footprint (~30MB) are critical.

“Quarkus 3.x is a Kubernetes-native Java framework that fundamentally changes Java’s operational profile. By shifting classpath scanning, dependency injection, and reflection elimination to build time through its Build-Time Augmentation pipeline, it achieves sub-second boot times and minimal memory footprint.

Underneath, it unifies Jakarta EE 10 standards on top of an Eclipse Vert.x reactive event loop, natively supporting both blocking and non-blocking code with HTTP/3 and io_uring. Finally, it offers a seamless choice between Java 21 Virtual Threads on HotSpot for peak throughput, and GraalVM Native Image for instant serverless execution.”


Term / ComponentFull NamePurpose & Plain English Explanation
ArCArC CDI Container (Quarkus built-in CDI)Quarkus’s ultra-lightweight Dependency Injection (CDI) engine. Unlike traditional CDI containers (e.g., Weld) that scan and reflect on classes at boot, ArC analyzes all @Inject, bean scopes, and interceptors at build time, generating static bytecode with zero runtime reflection.
CDIContexts and Dependency InjectionThe official enterprise Java specification for dependency injection (handling @Inject, @ApplicationScoped, @Produces, @Observes, etc.). Enables clean, decoupled architecture between components.
CDI LiteCDI Lite (Jakarta EE 10 Standard)A streamlined subset of CDI introduced in Jakarta EE 10 specifically designed for ahead-of-time (AOT) compilation. It removes runtime-only reflection features so frameworks like Quarkus can inspect all beans at build time.
BCEBuild Compatible ExtensionsThe new extension mechanism in CDI Lite. Replaces heavy runtime “portable extensions” with compile-time extensions, allowing Quarkus extensions to register beans and transform types during build.
SmallRyeSmallRye ProjectAn open-source collection of implementations of the Eclipse MicroProfile specifications (e.g., SmallRye Config, SmallRye Reactive Messaging, SmallRye Health). Quarkus leverages SmallRye as foundational building blocks for cloud-native APIs.
Vert.xEclipse Vert.xThe high-performance reactive toolkit at the core of Quarkus. It provides an event-driven Netty Event Loop that multiplexes network traffic over a tiny pool of OS threads, handling tens of thousands of concurrent connections.
NettyNetty Asynchronous Event-Driven Network FrameworkThe low-level non-blocking I/O network engine that powers Vert.x and Quarkus, handling raw TCP, HTTP/1/2/3, and WebSocket sockets with zero-copy buffer pooling.
MutinyMutiny Reactive Programming LibraryQuarkus’s event-driven reactive stream library built on Uni (0 or 1 item) and Multi (0 to N streaming items). Replaces confusing reactive pipelines with readable, intuitive, chainable APIs.
RESTEasy ReactiveRESTEasy Reactive REST FrameworkThe default HTTP/REST engine in Quarkus. It maps JAX-RS endpoints directly onto the Vert.x event loop, handling reactive methods non-blockingly and automatically routing blocking methods to worker threads or Virtual Threads.
JandexJava Annotation IndexerA build-time tool that scans .class files in your project and dependencies, producing a compact offline binary index of all classes, methods, and annotations so Quarkus never has to scan the classpath at runtime.
ASMJava Bytecode Manipulation & Analysis FrameworkThe low-level bytecode library Quarkus uses at build time to rewrite bytecode, inline dependency injection calls, remove reflection, and generate synthetic classes.
AOTAhead-of-Time CompilationPerforming compilation, optimization, class analysis, and bean wiring before the application runs (at build time) instead of doing it lazily when the application starts up.
GraalVMGraalVM & Substrate VMAn advanced JDK that can compile Java bytecode directly into a standalone, OS-native machine executable (Native Image) with sub-10ms startup times and no standard JVM requirement.
OpenTelemetry (OTel)OpenTelemetryThe industry-standard CNCF observability framework for distributed tracing and metrics, replacing legacy OpenTracing and Jaeger client libraries in Quarkus 3.x.
OIDCOpenID ConnectAn identity and authentication standard built on top of OAuth 2.0. Quarkus provides built-in OIDC support for enterprise identity providers (Keycloak, Auth0, Okta, Azure AD).
JWTJSON Web TokenA compact, cryptographically signed token format used to transmit authenticated claims between microservices, supported natively in Quarkus via MicroProfile JWT.
io_uringLinux Kernel io_uring Asynchronous I/OA high-performance Linux kernel interface that uses dual shared memory ring buffers between user space and the kernel, eliminating costly epoll context switches for socket and file I/O.
UBIUniversal Base Image (Red Hat UBI 9)Enterprise-grade, hardened Linux container base images provided by Red Hat, used as the default base operating system layer for Quarkus container builds.
Virtual Threads (Loom)Java Virtual Threads (Project Loom)Lightweight JVM-managed threads (introduced in Java 21) that allow developers to write simple, synchronous blocking code while the JVM scales to millions of concurrent virtual threads without exhausting OS threads.
MicroProfileEclipse MicroProfileAn open set of enterprise Java specifications tailored for cloud-native microservices (Health, Metrics, Fault Tolerance, Config, OpenAPI), implemented in Quarkus primarily via SmallRye.