The DurableTaskClient APIs are all blocking APIs and use gRPC blocking-stubs internally. This limits the scalability of apps that depend on these client APIs.
Proposal
The DurableTaskClient abstract class should add support for non-blocking variants of the various APIs (starting orchestrations, waiting for their completion, etc.).
Other considerations
Azure Functions for Java doesn't yet support non-blocking functions: https://github.com/Azure/azure-functions-java-worker/issues/244, so non-blocking client APIs likely won't benefit Azure Functions users. Unfortunately, there's no indication about if or when this support will be added to Azure Functions.
Issue summary
The
DurableTaskClient
APIs are all blocking APIs and use gRPC blocking-stubs internally. This limits the scalability of apps that depend on these client APIs.Proposal
The
DurableTaskClient
abstract class should add support for non-blocking variants of the various APIs (starting orchestrations, waiting for their completion, etc.).Other considerations
Azure Functions for Java doesn't yet support non-blocking functions: https://github.com/Azure/azure-functions-java-worker/issues/244, so non-blocking client APIs likely won't benefit Azure Functions users. Unfortunately, there's no indication about if or when this support will be added to Azure Functions.