docs: public static StepExecutionResult wrapDispatcherResult(final DispatcherResult dispatcherResult) {
          final StepExecutionResultImpl result;
          if(dispatcherResult.isSuccess()) {
              result = NodeDispatchStepExecutorResult.success(dispatcherResult);
          }else{
              result = NodeDispatchStepExecutorResult.failure(dispatcherResult,
                                                              null,
                                                              Reason.NodeDispatchFailure,
                                                              "Node dispatch failed");
              //extract failed nodes
              ArrayList<String> nodeNames = new ArrayList<>();
              for (String nodeName : dispatcherResult.getResults().keySet()) {
                  NodeStepResult nodeStepResult = dispatcherResult.getResults().get(nodeName);
                  if(!nodeStepResult.isSuccess()) {
                      nodeNames.add(nodeName);
                  }
              }
              if(!nodeNames.isEmpty()){
                  result.getFailureData().put(FAILURE_DATA_FAILED_NODES, StringUtils.join(nodeNames, ","));
              }
          }
          return result;
      }