Skip to content

Task queue config for whole-queue concurrency limit - #852

Draft
dnr wants to merge 6 commits into
temporalio:mainfrom
dnr:fcw
Draft

dnr wants to merge 6 commits into
temporalio:mainfrom
dnr:fcw

Conversation

@dnr

@dnr dnr commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

What changed?
Add whole-queue concurrency limit config to task queue config.

Why?
Simplest possible concurrency limit. Server-side implementation is easier to manage than worker slots.

// workers will not increase throughput — the bottleneck is the rate limit, not worker count. This
// field is useful for auto-scaling systems to avoid unnecessary scale-up.
bool rate_limiting_active = 5;
bool flow_control_active = 6;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is worth some discussion: there are now more things than rate limits that can deliberately slow dispatch. But we probably don't want to add a separate field for each kind of thing (e.g. circuit_breaker_active, adaptive_limiter_active, ...). So maybe we want a bunch of type-specific bools plus one "any flow control active" bool, and then update code to mostly look at that one new one, and the type-specific ones are just for debugging/observability?

I considered changing rate_limiting_active to flow_control_active, but that's an incompatible change (at the json/source level, not the wire level).

@carlydf @rkannan82 you may have thoughts on this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant