mir-backend-jvm-quarkuslisted
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) · RESTEasy Reactive or Classic · Hibernate ORM with Panache · SmallRye Mutiny · GraalVM CE / Mandrel for native image.
## The Quarkus footguns AI walks into most
### 1. Build-time DI — missing beans fail at build, not runtime (mostly)
Quarkus resolves CDI beans at build time using ArC (a build-time CDI implementation). Most injection errors surface as build failures, which is good. But AI regularly writes code that assumes runtime reflection is available, then ships a native image that fails on first deployment.
```java
// WRONG — a class only accessed via reflection (e.g., Jackson deserialization target,
// JPA converter, or a dynamically-loaded strategy) is silently excluded in native image
public class PayloadConverter implements AttributeConverter<Payload, String> { ... }
// RIGHT — register for reflection explicitly
@RegisterForReflection
public class PayloadConverter implements Att