docs: protected void copyControlOutBound(int srcTaskId,
                                       HeronTuples.AckTuple control,
                                       boolean isSuccess) {
      for (HeronTuples.RootId rootId : control.getRootsList()) {
        HeronTuples.AckTuple t =
            HeronTuples.AckTuple.newBuilder().
                addRoots(rootId).
                setAckedtuple(control.getAckedtuple()).
                build();
  
        if (isSuccess) {
          tupleCache.addAckTuple(srcTaskId, rootId.getTaskid(), t);
        } else {
          tupleCache.addFailTuple(srcTaskId, rootId.getTaskid(), t);
        }
      }
    }