Virtual Threads vs WebFlux vs Platform Threads on Spring Boot 4.1: Benchmarks and a Decision Framework
Three identical Spring Boot 4.1.1 endpoints — I/O-bound and CPU-bound — re-benchmarked on JDK 25 under platform threads, virtual threads, and WebFlux. Real numbers, a benchmark-methodology bug caught and fixed along the way, an event-loop-starvation failure mode isolated CPU benchmarks miss, and a decision framework: if your service does X, pick Y, because Z.