code: private void handleExecutorNotAliveCase(
        final Entry<Optional<Executor>, List<ExecutableFlow>> entry, final Executor executor,
        final ExecutorManagerException e) {
      logger.error("Failed to get update from executor " + executor.getId(), e);
      this.executorFailureCount.put(executor.getId(), this.executorFailureCount.getOrDefault
          (executor.getId(), 0) + 1);
      if (this.executorFailureCount.get(executor.getId()) % this.executorMaxFailureCount == 0
          && !this.alertEmails.isEmpty()) {
        entry.getValue().stream().forEach(flow -> flow
            .getExecutionOptions().setFailureEmails(this.alertEmails));
        logger.info(String.format("Executor failure count is %d. Sending alert emails to %s.",
            this.executorFailureCount.get(executor.getId()), this.alertEmails));
        this.alerterHolder.get("email").alertOnFailedUpdate(executor, entry.getValue(), e);
      }
    }
docs: Increments executor failure count. If it reaches max failure count, sends alert emails to AZ
  admin.
  
  @param entry executor to list of flows map entry
  @param executor the executor
  @param e Exception thrown when the executor is not alive