Skip to content

Populate WorkerListInfo when returning ListWorkersResponse#9418

Merged
rkannan82 merged 9 commits intomainfrom
kannan/worker-summary-server
Mar 11, 2026
Merged

Populate WorkerListInfo when returning ListWorkersResponse#9418
rkannan82 merged 9 commits intomainfrom
kannan/worker-summary-server

Conversation

@rkannan82
Copy link
Copy Markdown
Contributor

@rkannan82 rkannan82 commented Feb 27, 2026

What changed?

  • Build WorkerListInfo in matching handler and pass through to frontend
  • Update go.temporal.io/api to include merged WorkerListInfo proto

Why?

WorkerListInfo contains only static worker attributes for efficient listing. Building it in matching (closer to the data source) enables eventually dropping the deprecated WorkersInfo field from the internal response.

How did you test it?

  • built
  • added new unit test for field coverage
  • covered by existing functional tests

Potential risks

None - backward compatible. Deprecated WorkersInfo field continues to be populated.

@rkannan82 rkannan82 requested review from a team as code owners February 27, 2026 00:12
@rkannan82 rkannan82 force-pushed the kannan/worker-summary-server branch 4 times, most recently from 05c048c to 00a7f7a Compare February 27, 2026 00:27
@rkannan82 rkannan82 changed the title Populate WorkerSummary and RuntimeStats in WorkerInfo Add WorkerListInfo to ListWorkersResponse for efficient worker listing Feb 27, 2026
@rkannan82 rkannan82 changed the title Add WorkerListInfo to ListWorkersResponse for efficient worker listing Populate WorkerListInfo when returning ListWorkersResponse Feb 27, 2026
@rkannan82 rkannan82 force-pushed the kannan/worker-summary-server branch 4 times, most recently from 9906c80 to 603e736 Compare February 27, 2026 17:51
@rkannan82 rkannan82 changed the title Populate WorkerListInfo when returning ListWorkersResponse [DO_NOT_SUBMIT] Populate WorkerListInfo when returning ListWorkersResponse Mar 9, 2026
@rkannan82 rkannan82 force-pushed the kannan/worker-summary-server branch 3 times, most recently from 58311b5 to 400ae24 Compare March 9, 2026 21:43
@rkannan82 rkannan82 requested a review from bergundy March 9, 2026 21:44
Copy link
Copy Markdown
Member

@bergundy bergundy left a comment

Choose a reason for hiding this comment

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

LGTM

rkannan82 added a commit to temporalio/api that referenced this pull request Mar 10, 2026
## What changed?
- Add `WorkerListInfo` proto for List API (follows CHASM entity
conventions like `ActivityExecutionListInfo`, `ScheduleListEntry`)
- Add `workers` field to `ListWorkersResponse` returning `repeated
WorkerListInfo`
- Deprecate `workers_info` field in `ListWorkersResponse`

[Server PR](temporalio/temporal#9418)

## Why?
Listing many workers with full `WorkerInfo` (containing dynamic metrics)
is expensive. `WorkerListInfo` contains only static/slow-changing fields
for efficient listing.

## How did you test it?
- [x] make proto passes

## Potential risks
None - backward compatible.
temporal-cicd bot pushed a commit to temporalio/api-go that referenced this pull request Mar 10, 2026
## What changed?
- Add `WorkerListInfo` proto for List API (follows CHASM entity
conventions like `ActivityExecutionListInfo`, `ScheduleListEntry`)
- Add `workers` field to `ListWorkersResponse` returning `repeated
WorkerListInfo`
- Deprecate `workers_info` field in `ListWorkersResponse`

[Server PR](temporalio/temporal#9418)

## Why?
Listing many workers with full `WorkerInfo` (containing dynamic metrics)
is expensive. `WorkerListInfo` contains only static/slow-changing fields
for efficient listing.

## How did you test it?
- [x] make proto passes

## Potential risks
None - backward compatible.
@rkannan82 rkannan82 changed the title [DO_NOT_SUBMIT] Populate WorkerListInfo when returning ListWorkersResponse Populate WorkerListInfo when returning ListWorkersResponse Mar 11, 2026
@rkannan82 rkannan82 enabled auto-merge (squash) March 11, 2026 03:18
- Add workerHeartbeatToListInfo helper in frontend to convert WorkerHeartbeat
  to WorkerListInfo for the new ListWorkersResponse.Workers field
- Update tests to verify both deprecated WorkersInfo and new Workers fields

The new WorkerListInfo proto contains only static/slow-changing worker info,
enabling efficient listing of many workers without expensive dynamic data.
Follows CHASM entity conventions (ActivityExecutionListInfo, ScheduleListEntry).

- [x] built
- [x] updated assertions in existing functional tests

None - backward compatible. Deprecated WorkersInfo field continues to work.

Made-with: Cursor
Update api-go to latest kannan/worker-summary-api (7ce2e200127a)
which points to the squashed proto submodule.

Add a test using proto reflection to verify all WorkerListInfo fields
are populated by workerHeartbeatToListInfo.

Made-with: Cursor
The api PR has been merged, so we can use the official module.

Made-with: Cursor
Add Workers field to internal matchingservice.ListWorkersResponse proto
so matching builds WorkerListInfo directly. Frontend now passes through
resp.GetWorkers() instead of doing the transformation itself.

Made-with: Cursor
@rkannan82 rkannan82 force-pushed the kannan/worker-summary-server branch from 0343853 to c475173 Compare March 11, 2026 03:20
@rkannan82 rkannan82 merged commit 450b7f9 into main Mar 11, 2026
46 checks passed
@rkannan82 rkannan82 deleted the kannan/worker-summary-server branch March 11, 2026 18:04
birme pushed a commit to eyevinn-osaas/temporal that referenced this pull request Mar 23, 2026
…o#9418)

## What changed?
- Build `WorkerListInfo` in matching handler and pass through to
frontend
- Update `go.temporal.io/api` to include merged WorkerListInfo proto

## Why?
`WorkerListInfo` contains only static worker attributes for efficient
listing. Building it in matching (closer to the data source) enables
eventually dropping the deprecated `WorkersInfo` field from the internal
response.

## How did you test it?
- [x] built
- [x] added new unit test for field coverage
- [x] covered by existing functional tests

## Potential risks
None - backward compatible. Deprecated `WorkersInfo` field continues to
be populated.
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.

2 participants