Needs sanity checking
We can collaborate on the work via linked GitHub branch
The problem out of the box is when you AtomicAction "begin" - you will link to the ThreadActionData, as you can see in the test I can circumvent that via a different API call start passing in the parent directly.
You can see there is precedent to manipulate ThreadActionData: ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/AsyncPrepare.java (doing the prepare in multiple threads)
I think this is feasible, it may need some thread safety via synchronization in the AtomicAction.
Nested Transactions in core look to be able to support concurrent access except:
1. Threading may not work, will need to check and fix
2. ThreadActionData imposes a stack
You can see in my test (linked in the GitHub branch) I am circumventing the stack.
we already support nested transactions, it should just be not associating them with a thread and making sure they are thread safe when they talk to their parents