What is the recommended way to do Async way of executing?

You don’t need async

  1. Our existing workflow engine is a written like blocking code.
  2. I am trying to see Temporal Async way of executing WorkFlow.

Any reason you want to use async to implement your workflow? I would recommend implementing your workflow synchronously. Your code is going to be much more simple this way.

Any particular reason you want it to be async?

Promise vs CompletableFuture.

Never use CompletableFuture or any other standard Java synchronization primitives or native Java threads inside the workflow code. Only use the APIs that Temporal provides for this.

For example, Promise and its implementation CompletablePromise - temporal-sdk 1.22.3 javadoc should be used instead of Future and CompletableFuture.

See this section of the documentation on what exactly is prohibited inside the workflow code.