{"repo":"chrisgleissner/loom-webflux-benchmarks","free":true,"listed":false,"github":"https://github.com/chrisgleissner/loom-webflux-benchmarks","clone":"git clone https://github.com/chrisgleissner/loom-webflux-benchmarks.git","description":"Benchmarks of Spring Boot REST service comparing Java 21 Virtual Threads (Project Loom) with WebFlux (Project Reactor).","language":"Python","stars":47,"topics":["benchmark","java","webflux","http","java21","performance-testing","projectloom","springboot3","virtualthreads","jpa"],"license":"Apache-2.0","category":"data-pipelines","readme_excerpt":"Benchmark of Java Virtual Threads vs WebFlux This Java project benchmarks a simple Spring Boot 4.1 microservice using configurable scenarios, comparing Java Virtual Threads (introduced by Project Loom, JEP 444) using Tomcat and Netty with Spring WebFlux (relying on Project Reactor) using Netty. All benchmark results below come from a dedicated bare metal Ubuntu 24.04 test environment using Java 25 unless specified otherwise. The benchmark also runs monthly on GitHub-hosted runners, using all combinations of (Ubuntu 22.04, Ubuntu 24.04) and (Java 21, Java 25). Background Both Spring WebFlux and Virtual Threads are alternative technologies to create Java microservices that support a high number of concurrent users, mapping all incoming requests to very few shared operating system threads. This reduces the resource overhead incurred by dedicating a single operating system thread to each user. Spring WebFlux was first introduced in September 2017. Virtual Threads were first introduced as preview feature with Java 19 and were fully rolled out with Java 21 in September 2023. TL;DR [!NOTE] Headline findings from the latest run (Amazon Corretto 25.0.3, bare metal, June 2026; raw data in results/): Virtual Threads on Netty (using blocking code) matched or beat WebFlux on Netty (using non-blocking code relying on Mono and Flux from Project Reactor) across most - but not all - scenarios and metrics: - Counting every per-metric, per-scenario contest between the two Netty approaches on th","default_branch":null,"files":null,"tree":[],"storefront":"/r/chrisgleissner","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/chrisgleissner/loom-webflux-benchmarks/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}