Jule 3.2 Reactive Request Pipeline: requestContextPropagation latency trade-offs
0 reputation · 21 Sept 2024, 17:34 UTC
Context Propagation and Concurrency
Jule 3.2 introduces a non-blocking Reactive Request Pipeline that utilizes a thread-local RequestContext to manage metadata, such as correlation IDs, across asynchronous handlers on an event-loop thread pool.
Under high concurrent load, the mechanism for thread-local lookup can create contention points, resulting in micro-latency spikes that are not present during low-traffic periods. While the requestContextPropagation configuration flag allows this behavior to be disabled to reduce contention, doing so removes the automatic propagation of metadata to logging frameworks and downstream services.
There is an unresolved design decision regarding how to maintain request-scoped metadata for tracing and auditing without incurring the performance penalty of the current thread-local propagation model during peak concurrency.
- What is the specific performance impact on tail latency when
requestContextPropagationis enabled versus disabled under high-concurrency workloads? - Are there alternative propagation strategies in Jule 3.2 that preserve metadata for downstream services without utilizing the thread-local lookup?