From cbd2620f83551583c44f652e5d42ea786603755d Mon Sep 17 00:00:00 2001 From: Andrew Yuan Date: Fri, 22 May 2026 10:20:49 -0400 Subject: [PATCH 1/2] Add repeated task_queues field, deprecate old --- temporal/api/workflowservice/v1/request_response.proto | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/temporal/api/workflowservice/v1/request_response.proto b/temporal/api/workflowservice/v1/request_response.proto index 6d2d324a7..6d30f52df 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -1113,7 +1113,7 @@ message ShutdownWorkerRequest { // sticky_task_queue may not always be populated. We want to ensure all workers // send a shutdown request to update worker state for heartbeating, as well // as cancel pending poll calls early, instead of waiting for timeouts. - string sticky_task_queue = 2; + string sticky_task_queue = 2 [deprecated = true]; string identity = 3; string reason = 4; temporal.api.worker.v1.WorkerHeartbeat worker_heartbeat = 5; @@ -1124,10 +1124,16 @@ message ShutdownWorkerRequest { // Task queue name the worker is polling on. This allows server to cancel // all outstanding poll RPC calls from SDK. This avoids a race condition that // can lead to tasks being lost. - string task_queue = 7; + string task_queue = 7 [deprecated = true]; // Task queue types that help server cancel outstanding poll RPC // calls from SDK. This avoids a race condition that can lead to tasks being lost. repeated temporal.api.enums.v1.TaskQueueType task_queue_types = 8; + // Task queue names the worker is polling on. This allows server to cancel + // all outstanding poll RPC calls from SDK. This avoids a race condition that + // can lead to tasks being lost. This list of task queues potentially contains + // the regular task queue, the sticky task queue, and the 2 internal task + // queues that Go sessions use. + repeated string task_queues = 9; } message ShutdownWorkerResponse { From cdaf188c96885d7ab2586800e7545e600901db46 Mon Sep 17 00:00:00 2001 From: Andrew Yuan Date: Tue, 26 May 2026 13:21:19 -0400 Subject: [PATCH 2/2] Pair name and TaskQueueType together --- .../workflowservice/v1/request_response.proto | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/temporal/api/workflowservice/v1/request_response.proto b/temporal/api/workflowservice/v1/request_response.proto index 6d30f52df..7e262cb0b 100644 --- a/temporal/api/workflowservice/v1/request_response.proto +++ b/temporal/api/workflowservice/v1/request_response.proto @@ -1109,6 +1109,11 @@ message ResetStickyTaskQueueResponse { } message ShutdownWorkerRequest { + message WorkerPollerTaskQueue { + string name = 1; + temporal.api.enums.v1.TaskQueueType type = 2; + } + string namespace = 1; // sticky_task_queue may not always be populated. We want to ensure all workers // send a shutdown request to update worker state for heartbeating, as well @@ -1127,13 +1132,13 @@ message ShutdownWorkerRequest { string task_queue = 7 [deprecated = true]; // Task queue types that help server cancel outstanding poll RPC // calls from SDK. This avoids a race condition that can lead to tasks being lost. - repeated temporal.api.enums.v1.TaskQueueType task_queue_types = 8; - // Task queue names the worker is polling on. This allows server to cancel + repeated temporal.api.enums.v1.TaskQueueType task_queue_types = 8 [deprecated = true]; + // Task queues the worker is polling on. This allows server to cancel // all outstanding poll RPC calls from SDK. This avoids a race condition that - // can lead to tasks being lost. This list of task queues potentially contains - // the regular task queue, the sticky task queue, and the 2 internal task - // queues that Go sessions use. - repeated string task_queues = 9; + // can lead to tasks being lost. Each entry identifies a specific task queue + // name and type pair, allowing the same task queue name to appear multiple + // times for workers polling more than one task queue type. + repeated WorkerPollerTaskQueue task_queues = 9; } message ShutdownWorkerResponse {