Open
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dnr
reviewed
Feb 24, 2026
Comment on lines
+3097
to
+3098
| WorkerDryRunMode = NewGlobalBoolSetting( | ||
| "worker.dryRunMode", |
Contributor
There was a problem hiding this comment.
make the name more accurate? there's other stuff going on in the worker besides xdc
Suggested change
| WorkerDryRunMode = NewGlobalBoolSetting( | |
| "worker.dryRunMode", | |
| WorkerXDCDryRunMode = NewGlobalBoolSetting( | |
| "worker.xdcDryRunMode", |
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.
Summary
worker.dryRunModedynamic config flag that, when enabled on a cell, causes XDC system workflows (force-replication, namespace-handover) to complete immediately without doing real workMotivation
The control plane CICD MultiRegionSuite tests invoke real temporal server system workflows (force-replication, handover) on test cells. Force replication lists, replicates, and verifies all workflows between cells, taking hours.
The tradeoff with alternative approaches (e.g., mocking the data-plane client interface in the control plane) is that mock interfaces don't stay up to date as the server evolves. With this approach, all control plane code paths execute against a real temporal server with real gRPC serialization — the server just returns immediately from XDC workflows when dry-run mode is enabled.
Changes
common/dynamicconfig/constants.go: NewWorkerDryRunModeglobal bool setting (defaultfalse)service/worker/migration/activities.go:dryRunModefield on activities struct +IsDryRunModelocal activityservice/worker/migration/fx.go: WireWorkerDryRunModeinto activitiesservice/worker/migration/force_replication_workflow.go:isDryRunModehelper + skip checks in V1 and V2 (after query handler setup)service/worker/migration/handover_workflow.go: Skip check after param validation (V2 delegates to V1, so covered)Enabling on a cell
Test plan
go test -tags test_dep ./service/worker/migration/...passesgo build ./...compiles🤖 Generated with Claude Code