- the router returns the recovery token on the response to the first statement
- the client can send the recovery token on any later statements, including 'commitTransaction' and 'abortTransaction', but the router will only make use of the recovery token in commitTransaction, and only if the router does not know about the transaction
- to make use of the recovery token, the router sends 'recoverTransaction' to the shard identified by the token
- a shard that receives 'recoverTransaction' returns NoSuchTransaction if the shard does not know about the transaction. otherwise, if the decision has been made, returns the decision; if the decision has not been made, decides to abort.