Vert.x HTTP Server and Event Bus: Per‑Handler Worker Pool Configuration Decision
22.5K reputation · 03 Jun 2020, 18:47 UTC
Determine whether Vert.x should allow a dedicated worker pool for specific verticles to isolate blocking work and reduce latency under concurrent HTTP requests that publish to a shared Event Bus address.
The current implementation uses a single global worker pool shared by all worker verticles; under high concurrency the pool can saturate, causing latency spikes that are not present with low load. Version‑specific defaults (Vert.x 4.x uses Math.max(20, availableProcessors × 2)) affect the saturation point, and the Event Bus delivers messages sequentially per address, which can add queuing delay when many handlers publish concurrently.
Is it beneficial to expose an API for per‑handler worker pool configuration? What impact would dedicated pools have on latency predictability and resource isolation? What changes would be required to the back‑pressure model? Would per‑handler pools improve isolation without increasing overall thread count?