Here we use the grid's fixed executor for the transaction. This could be problematic because the ddl coordinator might switch a thread during execution of the transaction.
The idea is to have the addShardInTransaction receive an executor as a parameter and use that instead of the grid's one.
From the coordinator we use the coordinators's executor, and from the old path we use the grid's fixed one.