temporalio / temporalio/temporal-worker-controller

Address cold-start problems with scale-to-zero scalers

Open
#547 0 comments 0 reactions 1 assignee View on GitHub

@tomba7 is already working on this.

Since Aug 24, 2026.

autoscaling KEDA
Dominant language
Go
Stars
187
Forks
70
Avg merge
4d 1h
Merged PRs (30d)
31

Description

When N = 0, the current WD versions can still get scaled down to 0, even when the task queue is genuinely busy

KEDA's temporal scaler measures task queue backlog depth and not the throughput
In the reporter's environment, a worker that's actually busy and is keeping up, reads ~0 tasks at almost every poll
As a result, KEDA scales it down to 0, once the trigger has read inactive for a continuous cooldownPeriod (5m by default). Any single poll in between that sees a non-zero backlog resets the cool down clock
So a queue with steady, bursty traffic still sizes the k8s deployment to 0 if every burst drains between the polls. i.e. KEDA never sees the tasks getting processed
The next task then faces a cold start of up to one pollingInterval to notice the backlog, plus pod scheduling and worker startup latency

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.