We can use instance of ThreadLocal class to transport information
within an application.
One use case is to transport security or login information within an
instance of ThreadLocal so that every method can access it.
Another use case is to transport transaction information across an
application, without using the method-to-method communication.
https://www.javacodemonk.com/threadlocal-with-examples-usecases-in-java-3912002e