if the businesslogic is within the same thread yes, but how do you see it if the bl (or code excuted from an asyn action) is not run within the same thread? Is it easy to retrieve the context map from the threadlocal? If so I do not see a problem. It should however not be exposed to the user that a threadlocal solution is used.
Well, in that case, I think you should not use transient variable. In my understanding, thansient variable will be discarded when entering into state or task node, or what ever node type will keep the process in a non-complete state.
asynchronous continuation of a process will also dispose the transient variables.
the availability of transient variables and the thread locals will be very similar, i guess. but i decided to keep the transient variables for backwards compatibilty anyway.