private boolean transferDeletion(PipeDeleteDataNodeEvent pipeDeleteDataNodeEvent) {
    // We increase the reference count for this event to determine if the event may be released.
    if (!pipeDeleteDataNodeEvent.increaseReferenceCount(
        PipeConsensusSyncConnector.class.getName())) {
      return false;
    }

    final ProgressIndex progressIndex = pipeDeleteDataNodeEvent.getProgressIndex();
    final TCommitId tCommitId =
        new TCommitId(
            pipeDeleteDataNodeEvent.getReplicateIndexForIoTV2(),
            pipeDeleteDataNodeEvent.getCommitterKey().getRestartTimes(),
            pipeDeleteDataNodeEvent.getRebootTimes());
    final TConsensusGroupId tConsensusGroupId =
        new TConsensusGroupId(TConsensusGroupType.DataRegion, consensusGroupId);

    final TPipeConsensusTransferReq pipeConsensusTransferReq =
        PipeConsensusDeleteNodeReq.toTPipeConsensusTransferReq(
            pipeDeleteDataNodeEvent.getDeleteDataNode(),
            tCommitId,
            tConsensusGroupId,
            progressIndex,
            thisDataNodeId);
    final PipeConsensusDeleteEventHandler pipeConsensusDeleteEventHandler =
        new PipeConsensusDeleteEventHandler(
            pipeDeleteDataNodeEvent, pipeConsensusTransferReq, this, pipeConsensusConnectorMetrics);

    transfer(pipeConsensusDeleteEventHandler);
    return true;
  }
PipeConsensus only need transfer heartbeat event here. And heartbeat event doesn't need to be
added to transferBuffer.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/connector/protocol/pipeconsensus/PipeConsensusAsyncConnector.java