native-image
- We Removed Reactor. Nothing Got Slower.
We took the entire reactive stack out. R2DBC, Mono, Flux, Reactor Core, loom-carrier, flatMap with its carefully-tuned concurrency arguments. Replaced it with JDBC, HikariCP, and blocking method calls. Same endpoints. Same Netty HTTP server. Same PostgreSQL. …
- The AOT Hang That Wasn't
One line in my notes: "Micronaut AOT hangs native image — keep both false. AOT disabled." Five sessions. Five different engineers (all me, different days). Nobody questioned it. The line accreted authority through repetition, the way all project folklore does. …
- Your JVM Reports 151 MB. Your Container Uses 248.
151 MB. That's what micrometer-prometheus reports for the JVM at 256 MB after serving 1.66 million requests. Heap 35 MB, metaspace 72 MB, compressed class space 13 MB, code cache 16 MB, direct buffers 0.75 MB. Add it up. 137 MB. Rounded generously: 151 MB with …
- 107 MB of Invisible JVM RAM
Prometheus says 137 MB. Docker says 244 MiB. /proc/PID/smaps is the only witness that doesn't lie. The Discrepancy#JVM at 256 MB, Serial GC, after serving 1.66 million requests. Measured at idle: Docker stats: 244.2 MiB / 256 MiB (95.38%) Prometheus reports: …
- Every GC Failed at 256 MB (Except the Boring One)
Update, 2026-10-25: An earlier version said Serial is the only garbage collector in GraalVM Community Edition native images. CE also ships Epsilon (--gc=epsilon), a no-op collector that never frees memory and is meant for short-lived programs. For a service, …
- The Observability Tax: When Metrics Cost More Than Your App
Add observability to understand your app's memory usage. Watch observability consume all the memory. The JVM at 128 MB worked in Part 2. It no longer works. What Changed#One dependency: <dependency> <groupId>io.micronaut.micrometer</groupId> …
- Native Image vs JVM at 128 MB: The Benchmark Nobody Warned Me About
Update, 2026-10-25: An earlier version said Serial is the only garbage collector in GraalVM Community Edition native images. CE also ships Epsilon (--gc=epsilon), a no-op collector that never frees memory and is meant for short-lived programs. For a service, …
- Micronaut 5 Native Image: 14 Entries vs 1,913
Micronaut 5.0.0 dropped on May 20, 2026. The launch blog post promises first-class GraalVM native image support. The documentation is correct. It is also incomplete in ways that cost hours. This is what building a non-trivial native image app looks like on day …