microsoft / microsoft/durabletask-java
Non-blocking APIs for Durable Task clients
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 29
- Forks
- 18
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 2
Description
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the DurableTaskClient abstract class and trace how its APIs use gRPC blocking stubs. Define the non-blocking variants for starting orchestrations and waiting for completion, then verify that the client APIs no longer require blocking calls.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100