feat(taskworker): Minimum Worker Concurrency#735
Merged
george-sentry merged 26 commits intoJun 30, 2026
Merged
Conversation
…eorge/push-taskbroker/better-child-management-alternative
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0f61d82. Configure here.
evanh
reviewed
Jun 30, 2026
evanh
left a comment
Member
There was a problem hiding this comment.
Generally I think this is a good change (it all makes sense to me) but I think you could add more metrics. Some things I think would be useful:
- How long the child had to wait before the parent set the release event
- A gauge of how many children are in each state (pending/running/exiting)
- How many children are waiting to exit at any one time (exiting deque)
evanh
approved these changes
Jun 30, 2026
…eorge/push-taskbroker/better-child-management-alternative
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Linear
Refs STREAM-1269
Description
In #731, we deferred setting the status to
SERVINGfor workers in push mode until all threads were warmed up because before, Kubernetes thought workers were ready to receive activations even though they weren't, causing significant throughput declines during worker redeployments.Something similar happens when child processes recycle, or exit voluntarily because they have executed a certain, configurable number of tasks. This is meant to prevent memory leaks.
In some cases, child processes recycle at the same time, decreasing throughput significantly until all child processes are ready again. We can solve this problem by improving the child management process as follows.
SERVINGThis way, after startup, there is some number of running child processes at all times. We may still see throughput dips during worker recycle waves, but the dip will be much less severe and somewhat predictable.