Non-blocking Activity task implementations
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start with the TaskActivity interface and trace how its synchronous run result is consumed. Review the proposed AsyncTaskActivity contract and the linked Azure Functions limitation before defining the implementation scope. Done means an agreed approach for non-blocking activity completion and its integration with the existing activity execution flow.
Written by the indexing model from the issue text.
Description
Issue
The TaskActivity interface is currently has a synchronous run method that returns that output of that activity:
public interface TaskActivity {
Object run(TaskActivityContext ctx);
}
There's currently no way to define a non-blocking, asynchronous activity implementation. This can result in issues related to the scalability of applications if many activity tasks need to be executed concurrently.
Proposal
There should be an alternative mechanism for implementing non-blocking, asynchronous activity tasks. For example:
public interface AsyncTaskActivity {
CompletionStage<Object> run(TaskActivityContext ctx);
}
The activity will finish when the CompletionStage is completed.
Other considerations
It should be noted that Azure Functions for Java doesn't yet support non-blocking functions: https://github.com/Azure/azure-functions-java-worker/issues/244. Support for non-blocking activity tasks likely won't benefit Azure Functions users until the Java worker for Azure Functions adds async function support. Unfortunately, there's no indication about if or when this support will be added.
- Dominant language
- Java
- Stars
- 29
- Forks
- 18
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 2
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.
More from microsoft/durabletask-java
-
Needs: Triage :mag:
Difficulty 4/5 3-5 days Newbie friendliness 48/100
microsoft/durabletask-java#303 ·
-
Needs: Triage :mag:
Difficulty 4/5 3-5 days Newbie friendliness 45/100
microsoft/durabletask-java#290 · 2 comments ·
-
Needs: Triage :mag:
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/durabletask-java#285 ·
-
Needs: Triage :mag:
Difficulty 3/5 1-2 days Newbie friendliness 68/100
microsoft/durabletask-java#276 ·
-
Enhancement
microsoft/durabletask-java#274 · 1 reaction · 2 assignees ·
All issues in microsoft/durabletask-java
Similar issues
-
bug untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
opensearch-project/ml-commons#5094 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
emitter:client:csharp feature
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
affects/8.10 affects/8.9 component/clients kind/bug likelihood/mid severity/mid
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Two open-case totals on one screen: the Programs tile says 15,858 and the nav badge says 15,868 Openbug frontend maui-pilot
Difficulty 2/5 1-3 hours Newbie friendliness 72/100