microsoft / microsoft/durabletask-mssql
Dynamic concurrency throttles
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 105
- Forks
- 36
- PR merge metrics
- No merged PRs in 30d
Description
Concurrency settings are currently static and default to the number of cores for both activity tasks and orchestrations. For simple "hello, cities" scenarios, this often results in underutilized CPU, based on recent performance tests using Azure Functions.
The Azure Functions runtime team is working on a dynamic concurrency throttle feature that would dynamically determine an ideal concurrency limit based on a variety of factors, including CPU usage, memory, and possibly network connectivity. This work requires individual triggers to participate in the throttling behavior to ensure messages don't get picked up and then throttled in-memory. This issue tracks integration with this Azure Functions throttling feature, when it is available.
In the case of DTFx apps, an extension point will be made available to allow for custom concurrency throttling implementations.
NOTE: It's not yet clear whether throttle participation work would need to happen in the Durable SQL provider or if can happen in the core Durable Task Framework dispatcher, in which case different backends benefit automatically. If it's the latter, then this issue can be migrated to the Azure/durabletask repo.
Contributor guide
No contributing guide indexed for this repository
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 by checking the Azure Functions dynamic concurrency throttle feature and whether trigger participation belongs in the Durable SQL provider or the core Durable Task Framework dispatcher. Confirm where the integration should live and what extension point is required for custom throttling; done means the provider or core dispatcher participates without in-memory message throttling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp
- Domain
- backend, cloud, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100