It might be worth updating the GitHub Issue: the impression I got from looking at it was that it wasn't a priority (the most recent official comment is over a year old and comes across as quite dismissive of the request).
I've experienced both: explicit passing of immutable Contexts in Go and using ThreadLocal storage in Java (DropWizard) apps.
I think it was our mistake to use ThreadLocal storage for request-specific data. This directly couples threads (which are an OS / scheduling concern) to the serving of requests. We then ran into issues spawning new background threads, or naively switching to Kotlin Coroutines (which can be scheduled on a different thread).
So I prefer the explicit, immutable context passing that Go uses. The `getThing()` pattern you mention seems reasonable and gives you some type safety that is otherwise missing with a bare `context.Value()` calls.
We use machine learning to provide real-time fraud detection for online businesses, such as Deliveroo, YPlan and Easy Taxi.
The tech stack is Go microservices on the backend and TypeScript and Angular on the frontend. Experience in these is nice, but definitely not required.
It might be worth updating the GitHub Issue: the impression I got from looking at it was that it wasn't a priority (the most recent official comment is over a year old and comes across as quite dismissive of the request).