@VisibleForTesting
  final <T, U> CompletionStage<U> composeFutureWithExecutor(CompletionStage<T> futureToChain,
      Function<? super T, ? extends CompletionStage<U>> fn) {
    return operatorExecutorEnabled ? futureToChain.thenComposeAsync(fn, operatorExecutor)
        : futureToChain.thenCompose(fn);
  }
Get the unique ID for this {@link OperatorImpl} in the DAG.

Some {@link OperatorImpl}s don't have a 1:1 mapping with their {@link OperatorSpec}. E.g., there are
2 PartialJoinOperatorImpls for a JoinOperatorSpec. Overriding this method allows them to provide an
implementation specific id, e.g., for use in metrics.

@return the unique ID for this {@link OperatorImpl} in the DAG
samza-core/src/main/java/org/apache/samza/operators/impl/OperatorImpl.java