code: protected final void asyncExecuteWorkFlow(String queryId, LogicalWorkflow workflow, IResultHandler
              resultHandler) throws ConnectorException {
          checkIsSupported(workflow);
          ClusterName clusterName = ((Project) workflow.getInitialSteps().get(0)).getClusterName();
          asyncExecute(queryId, (Project) workflow.getInitialSteps().get(0),
                  connectionHandler.getConnection(clusterName.getName()), resultHandler);
      }
docs: Abstract method which must be implemented by the concrete database metadataEngine to execute a async workflow.
  
  @param queryId       the queryId.
  @param workflow      the workflow.
  @param resultHandler the result handler.
  @throws ConnectorException if an error happens.