microsoft / durabletask-java

Java SDK for Durable Functions and the Durable Task Framework
MIT License
13 stars 7 forks source link

Non-blocking APIs for Durable Task clients #3

Open cgillum opened 2 years ago

cgillum commented 2 years ago

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.

kaibocai commented 1 year ago

Hi @cgillum , are other languages supporting non-blocking APIs currently? Thanks.