What guarantees (or not) does spring @async give w.r.t. cross-thread object consistency? The practical part of this question is - do all parameters passed to methods marked with @async need to be immutable?
From the JMM perspective - does the @Async implementation provide a 'happens-before' relationship between the different threads? (i.e. don't worry - everything just works).
Here's a similar post and answer: is spring async pass object thread safe to previous update