#JVM
Every post I've written about JVM — 4 articles, across Engineering, Distributed Systems. Most recent: “Java 26 Landed: The Features to Track Before the Java 29 LTS.”
Posts tagged #JVM
Java 26 Landed: The Features to Track Before the Java 29 LTS
Most backend teams run only the LTS lines, so Java 26 looks skippable. It is not — it is the clearest preview of what the Java 29 LTS will contain. These are my notes on what is already final (AOT object caching with ZGC, a faster G1, HTTP/3), the one preview I would rewrite code for (Lazy Constants, with a runnable example), and the integrity change that will break builds.
Kotlin 2.4: The Three Changes That Moved My Hand on the Keyboard
Kotlin 2.4.0 shipped a long changelog, but only three features changed how I actually type: stable context parameters, explicit backing fields, and (still behind a flag) name-based destructuring. Here is my backend-engineer's cut, verified against the 2.4.0 compiler, plus the K1 removal I had to put on a calendar.
Two-Phase Commit on the JVM: The Blocking Problem Nobody Puts in the Diagram
I crashed a Two-Phase Commit coordinator on purpose in a small Kotlin simulation to measure how long participants stay locked when the coordinator vanishes between phases. The result is the part of 2PC the diagrams never show — and the reason I would model most cross-service writes as a saga instead.
Virtual Threads After JEP 491: The Bottleneck Moved
JEP 491 removed the `synchronized` pinning problem that kept virtual threads out of production. The interesting question now isn't whether to enable them — it's which bottleneck shows up next. A field guide for Spring Boot / Kotlin services running on JDK 24+.