← ClaudeAtlas

mir-backend-jvm-quarkuslisted

Make It Right (Quarkus module). Quarkus 3.x (LTS 3.33) + Hibernate ORM/Panache + Quarkus REST (formerly RESTEasy Reactive) + Mutiny footguns. Covers: build-time DI (reflection must be registered with @RegisterForReflection or it fails only at native runtime), the Quarkus REST execution model (the return type picks the thread — Uni/Multi/CompletionStage run on the Vert.x event loop, everything else on a worker thread), blocking inside Mutiny pipelines, @RunOnVirtualThread, build-time vs runtime config keys and secrets baked into a native binary, native-image gotchas, and Quarkus security (deny-unannotated-endpoints defaulting to false, CORS config, the quarkus-rest-csrf extension, Panache active-record mass assignment, and the path-normalization authorization-bypass advisories against quarkus.http.auth.permission policies). Chains: mir-backend -> mir-backend-jvm -> this, which adds only Quarkus library mechanics. TRIGGER only when the JVM backend stack is Quarkus — building, reviewing, or debugging a Quarkus R
anantbhandarkar/make-it-right · ★ 15 · API & Backend · score 81
Install: claude install-skill anantbhandarkar/make-it-right
# /mir-backend-jvm-quarkus · Make It Right (Quarkus) Bottom tier of the chain: `mir-backend` (generic gates) → `mir-backend-jvm` (JVM runtime model) → **this** (Quarkus library mechanics). Run the gates first; load the JVM runtime tier for threading, GC, and container-heap concerns; reach for *this* at Gate 5 (design mechanics), Gate 6 (implementation), and Gate 7 review. **Runtime-level concerns (virtual-thread pinning, pool sizing, GC tuning, `-XX:MaxRAMPercentage`, ThreadLocal hygiene, JMM visibility) live in `mir-backend-jvm` — not here.** **Stack assumed:** Quarkus 3.x · CDI (ArC) · Quarkus REST (or the classic imperative stack) · Hibernate ORM with Panache · SmallRye Mutiny · GraalVM CE / Mandrel for native image. **Version status, verified 13 Aug 2026:** | Line | Status | Use it when | |---|---|---| | **Quarkus 3.33 LTS** | Current LTS, patches to 25 Mar 2027 | Production default | | **Quarkus 3.27 LTS** | Older LTS, support ends 24 Sep 2026 | Migrate off it now | | **3.38.x** | Latest non-LTS minor (new minors every 4–6 weeks) | Only if you track releases continuously — a non-LTS minor is supported only until the next one | | Quarkus 4.0 | Beta 1 targeted Sep 2026 (JPMS modularization, JLink images) | Not yet | Java baseline is **17**, with 21 and 25 supported. The Leyden AOT cache needs Java 25; `@RunOnVirtualThread` wants Java 24+ (see §2). **Naming:** the reactive REST stack was renamed **Quarkus REST** (`quarkus-rest`, `quarkus-rest-jackson`). `quarkus-reste