docs: private CompletableFuture<Void> forwardCompleteCommand(ByteString cacheName, RpcManager rpcManager,
           TxState state) {
        //TODO what if the originator crashes in the meanwhile?
        //actually, the reaper would rollback the transaction later...
        Address originator = state.getOriginator();
        CacheRpcCommand command = buildForwardCommand(cacheName, state.getTimeout());
        return rpcManager.invokeCommand(originator, command, validOnly(), rpcManager.getSyncRpcOptions())
              .handle(handler())
              .toCompletableFuture();
     }