> In all cases, the apps affected ran on Java 21 with SpringBoot 3 and embedded Tomcat serving traffic on REST endpoints.
Blessing and curse. Java’s libraries-built-on-libraries are fast and robust but hard to all upgrade everywhere. Coupled well overall, but not for language upgrades.
Why migrate this to virtual threads at all? Thread per request is so convenient. Then observe “realSpan” a tracing related object is on the glitchy stack in that blog post. Lots of stuff reinvents thread per request, like contexts and spans or whatever you want to call it.