r2dbc
- The Falsifier That Never Fired
Spring should wedge at 256MB like Micronaut, or the r2dbc-pool theory is wrong. Ten hours later Spring wedged harder. Quarkus never noticed.
- 2492, 2495, 2508
Three frameworks, byte-identical DAOs, and the benchmark that collapsed to a rounding error.
- Eight Connections, Zero Available
Two reactive frameworks hit the same 60 rps wall. The pool said all 8 connections were busy. Postgres said they were idle.
- 265 req/s on All Three Runtimes (Until You Add a Memory Limit)
Native image, JVM, and virtual threads all hit 265 req/s. Then the memory limit dropped.
- flatMap's Second Argument Saved 1.7 Million Requests
Midway through a code review of the reactive pipeline, staring at this line in NeoService.java: .flatMap(neo -> saveAsteroidWithApproaches(sessionId, neo)) That's Flux.flatMap() with one argument. The function. No concurrency limit. Reactor's default: 256 …
- Seven Fixes, Zero Errors
The fix for "JVM dies at 256 MB under load" was not a JVM flag. Part 4 ended with Serial GC — the only GC that fits in 256 MB — serving 4,550 requests before the OOM killer showed up. 81% error rate. Same flags, same container, same load profile. Seven code …
- 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 …