# quarkusio/quarkus architecture

> Architecture diagram of the GitHub repository quarkusio/quarkus, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/quarkusio/quarkus
- Repository: https://github.com/quarkusio/quarkus

## Overview

Quarkus is a Java framework that shifts substantial application work to build time, targeting JVM and native deployments while supporting container-first and cloud-native applications. The principal workflow is application augmentation: deployment logic organizes build steps and build items into an executable chain, with code generation and native-image configuration among the documented capabilities. Runtime extensions also adapt context propagation and provide focused HTTP-client and security support. The supplied tree and excerpts are selective, so links between unsampled subsystems are omitted rather than inferred.

Main entry points: [`core/deployment/src/main/java/io/quarkus/deployment/QuarkusAugmentor.java`](https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/QuarkusAugmentor.java) (Quarkus augmentor), [`core/builder/src/main/java/io/quarkus/builder/BuildChain.java`](https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/BuildChain.java) (Build chain), [`core/builder/src/main/java/io/quarkus/builder/BuildStep.java`](https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/BuildStep.java) (Build steps), [`extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/QuarkusContextStorage.java`](https://github.com/quarkusio/quarkus/blob/main/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/QuarkusContextStorage.java) (OpenTelemetry storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_augmentation["Build-time augmentation"]
  node_augmentor["Quarkus augmentor"]
  node_buildchain["Build chain<br/>[BuildChain.java]"]
  node_buildsteps["Build steps<br/>[BuildStep.java]"]
  node_builditems["Build items<br/>[BuildItem.java]"]
  node_extensionloader["Extension loading"]
  node_codegen["Code generation<br/>[CodeGenerator.java]"]
  node_nativeconfig["Native-image config"]
end

subgraph group_runtime["Runtime context"]
  node_otelstorage["OpenTelemetry storage"]
  node_observationstorage["Observation storage"]
  node_grpcstorage["gRPC storage"]
  node_executor["Context executor"]
end

subgraph group_extensions["Framework extensions"]
  node_restquery["REST query params"]
  node_querysupport["Query support"]
  node_authpolicy["Authorization policies"]
  node_webauthn["WebAuthn storage"]
end

subgraph group_devui["Developer interface"]
  node_devui["Dev UI"]
end

node_developer(("Application developer"))
node_app(("Quarkus application"))
node_vertx["Vert.x context"]
node_userprovider["WebAuthn user provider"]
node_localstorage[("Browser storage")]

node_developer -->|"starts augmentation"| node_augmentor
node_augmentor -->|"loads extensions"| node_extensionloader
node_augmentor -->|"executes chain"| node_buildchain
node_buildchain -->|"dispatches steps"| node_buildsteps
node_buildsteps -->|"produces items"| node_builditems
node_augmentor -->|"runs code generation"| node_codegen
node_augmentor -->|"collects native config"| node_nativeconfig
node_app -->|"attaches context"| node_otelstorage
node_otelstorage -->|"stores context"| node_vertx
node_app -->|"sets observation scope"| node_observationstorage
node_observationstorage -->|"stores scope"| node_vertx
node_app -->|"attaches gRPC context"| node_grpcstorage
node_grpcstorage -->|"stores context"| node_vertx
node_app -->|"submits tasks"| node_executor
node_executor -->|"dispatches with context"| node_vertx
node_app -->|"configures client queries"| node_restquery
node_querysupport -->|"checks query presence"| node_restquery
node_app -->|"checks secured methods"| node_authpolicy
node_app -->|"requests credential operations"| node_webauthn
node_webauthn -->|"delegates storage"| node_userprovider
node_app -->|"uses extension storage"| node_devui
node_devui -->|"reads and writes"| node_localstorage

click node_augmentor "https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/QuarkusAugmentor.java"
click node_buildchain "https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/BuildChain.java"
click node_buildsteps "https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/BuildStep.java"
click node_builditems "https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/item/BuildItem.java"
click node_extensionloader "https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/ExtensionLoader.java"
click node_codegen "https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/CodeGenerator.java"
click node_nativeconfig "https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/builditem/nativeimage/NativeImageConfigBuildItem.java"
click node_otelstorage "https://github.com/quarkusio/quarkus/blob/main/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/QuarkusContextStorage.java"
click node_observationstorage "https://github.com/quarkusio/quarkus/blob/main/extensions/observation/runtime/src/main/java/io/quarkus/observation/propagation/ObservationContextStorage.java"
click node_grpcstorage "https://github.com/quarkusio/quarkus/blob/main/extensions/grpc/runtime/src/main/java/io/grpc/override/ContextStorageOverride.java"
click node_executor "https://github.com/quarkusio/quarkus/blob/main/extensions/virtual-threads/runtime/src/main/java/io/quarkus/virtual/threads/ContextPreservingExecutorService.java"
click node_restquery "https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-reactive/rest-client/runtime/src/main/java/io/quarkus/rest/client/reactive/ClientQueryParam.java"
click node_querysupport "https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-reactive/rest-client/runtime/src/main/java/io/quarkus/rest/client/reactive/runtime/ClientQueryParamSupport.java"
click node_authpolicy "https://github.com/quarkusio/quarkus/blob/main/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/AuthorizationPolicyStorage.java"
click node_webauthn "https://github.com/quarkusio/quarkus/blob/main/extensions/security-webauthn/runtime/src/main/java/io/quarkus/security/webauthn/WebAuthnAuthenticatorStorage.java"
click node_devui "https://github.com/quarkusio/quarkus/blob/main/extensions/devui/resources/src/main/resources/dev-ui/controller/storage-controller.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_augmentor,node_buildchain,node_buildsteps,node_builditems,node_extensionloader,node_codegen,node_nativeconfig,node_userprovider toneBlue
class node_otelstorage,node_observationstorage,node_grpcstorage,node_executor,node_localstorage toneAmber
class node_restquery,node_querysupport,node_authpolicy,node_webauthn toneMint
class node_devui toneRose
class node_developer,node_app,node_vertx toneIndigo
```

## Components

### Build-time augmentation

- [Quarkus augmentor](https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/QuarkusAugmentor.java): `core/deployment/src/main/java/io/quarkus/deployment/QuarkusAugmentor.java`
- [Build chain](https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/BuildChain.java): `core/builder/src/main/java/io/quarkus/builder/BuildChain.java`
- [Build steps](https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/BuildStep.java): `core/builder/src/main/java/io/quarkus/builder/BuildStep.java`
- [Build items](https://github.com/quarkusio/quarkus/blob/main/core/builder/src/main/java/io/quarkus/builder/item/BuildItem.java): `core/builder/src/main/java/io/quarkus/builder/item/BuildItem.java`
- [Extension loading](https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/ExtensionLoader.java): `core/deployment/src/main/java/io/quarkus/deployment/ExtensionLoader.java`
- [Code generation](https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/CodeGenerator.java): `core/deployment/src/main/java/io/quarkus/deployment/CodeGenerator.java`
- [Native-image config](https://github.com/quarkusio/quarkus/blob/main/core/deployment/src/main/java/io/quarkus/deployment/builditem/nativeimage/NativeImageConfigBuildItem.java): `core/deployment/src/main/java/io/quarkus/deployment/builditem/nativeimage/NativeImageConfigBuildItem.java`

### Runtime context

- [OpenTelemetry storage](https://github.com/quarkusio/quarkus/blob/main/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/QuarkusContextStorage.java): `extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/QuarkusContextStorage.java`
- [Observation storage](https://github.com/quarkusio/quarkus/blob/main/extensions/observation/runtime/src/main/java/io/quarkus/observation/propagation/ObservationContextStorage.java): `extensions/observation/runtime/src/main/java/io/quarkus/observation/propagation/ObservationContextStorage.java`
- [gRPC storage](https://github.com/quarkusio/quarkus/blob/main/extensions/grpc/runtime/src/main/java/io/grpc/override/ContextStorageOverride.java): `extensions/grpc/runtime/src/main/java/io/grpc/override/ContextStorageOverride.java`
- [Context executor](https://github.com/quarkusio/quarkus/blob/main/extensions/virtual-threads/runtime/src/main/java/io/quarkus/virtual/threads/ContextPreservingExecutorService.java): `extensions/virtual-threads/runtime/src/main/java/io/quarkus/virtual/threads/ContextPreservingExecutorService.java`

### Framework extensions

- [REST query params](https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-reactive/rest-client/runtime/src/main/java/io/quarkus/rest/client/reactive/ClientQueryParam.java): `extensions/resteasy-reactive/rest-client/runtime/src/main/java/io/quarkus/rest/client/reactive/ClientQueryParam.java`
- [Query support](https://github.com/quarkusio/quarkus/blob/main/extensions/resteasy-reactive/rest-client/runtime/src/main/java/io/quarkus/rest/client/reactive/runtime/ClientQueryParamSupport.java): `extensions/resteasy-reactive/rest-client/runtime/src/main/java/io/quarkus/rest/client/reactive/runtime/ClientQueryParamSupport.java`
- [Authorization policies](https://github.com/quarkusio/quarkus/blob/main/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/AuthorizationPolicyStorage.java): `extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/AuthorizationPolicyStorage.java`
- [WebAuthn storage](https://github.com/quarkusio/quarkus/blob/main/extensions/security-webauthn/runtime/src/main/java/io/quarkus/security/webauthn/WebAuthnAuthenticatorStorage.java): `extensions/security-webauthn/runtime/src/main/java/io/quarkus/security/webauthn/WebAuthnAuthenticatorStorage.java`

### Developer interface

- [Dev UI](https://github.com/quarkusio/quarkus/blob/main/extensions/devui/resources/src/main/resources/dev-ui/controller/storage-controller.js): `extensions/devui/resources/src/main/resources/dev-ui/controller/storage-controller.js`

### Other components

- **Application developer**
- **Quarkus application**
- **Vert.x context**
- **WebAuthn user provider**
- **Browser storage**

## Connections

- Application developer → Quarkus augmentor: starts augmentation
- Quarkus augmentor → Extension loading: loads extensions
- Quarkus augmentor → Build chain: executes chain
- Build chain → Build steps: dispatches steps
- Build steps → Build items: produces items
- Quarkus augmentor → Code generation: runs code generation
- Quarkus augmentor → Native-image config: collects native config
- Quarkus application → OpenTelemetry storage: attaches context
- OpenTelemetry storage → Vert.x context: stores context
- Quarkus application → Observation storage: sets observation scope
- Observation storage → Vert.x context: stores scope
- Quarkus application → gRPC storage: attaches gRPC context
- gRPC storage → Vert.x context: stores context
- Quarkus application → Context executor: submits tasks
- Context executor → Vert.x context: dispatches with context
- Quarkus application → REST query params: configures client queries
- Query support → REST query params: checks query presence
- Quarkus application → Authorization policies: checks secured methods
- Quarkus application → WebAuthn storage: requests credential operations
- WebAuthn storage → WebAuthn user provider: delegates storage
- Quarkus application → Dev UI: uses extension storage
- Dev UI → Browser storage: reads and writes
