Why architecture matters here
ThreadLocal failures come from pool leaks. Architecture matters because pool reuse + missing remove combine into memory leaks.
Advertisement
The architecture: every piece explained
The top strip is basics. ThreadLocal<T>. Set / get / remove. Weak reference. Common use cases.
The middle row is risks. Leak in thread pools. InheritableThreadLocal. Virtual threads impact. ScopedValue alternative.
The lower rows are practice. Best practices. Metrics. Ops — code review + migration.
Advertisement
End-to-end flow
End-to-end: web handler sets ThreadLocal at request start; finally block removes at end. Pool worker reused; no leak. Virtual thread pattern prefers ScopedValue for context propagation with implicit cleanup.