Just to confirm we don't support interposed Synchronizations in the initial release of the distributed JTA API. It would be feasible to support these in the future, if this is a requirement, please register a Jira against https://issues.jboss.org/browse/JBTM-895
Synchronizations in our distributed JTA work as follows:
beforeCompletion will be called at all servers before the transaction completes. afterCompletion is currently node specific (see https://issues.jboss.org/browse/JBTM-909) so will be called immediately after the transaction commits at each particular node.
NOTE: The transport is responsible for adding a proxy synchronization that is able to propagate beforeCompletion to remote servers, see usages on: https://svn.jboss.org/repos/labs/labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/server/impl/ProxySynchronization.java -r 37555 (e.g. https://svn.jboss.org/repos/labs/labs/jbosstm/branches/JBOSSTS_4_15_0_Final/atsintegration/tests/classes/com/arjuna/ats/jta/distributed/SimpleIsolatedServers.java -r 37580)