Conversation
Make IdealState authoritative for WAGED placement tags, including delayed replicas and tag-removal feasibility checks. Remove the duplicate ResourceConfig API, constructor argument, merge and topology tracking. Preserve JobConfig's distinct task tag and retain legacy raw fields as opaque metadata. Document the precedence change and API incompatibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
sjainit
requested review from
LZD-PratyushBhatt,
arkmish,
kabragaurav,
laxman-ch,
ngngwr and
thestreak101
as code owners
September 24, 2026 05:45
This was referenced Sep 24, 2026
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.
Issues
Description
Retire the duplicate ResourceConfig
INSTANCE_GROUP_TAGsetting and makeIdealState authoritative for ordinary-resource placement.
constructor argument, IdealState-to-ResourceConfig tag propagation, and
topology-change tracking.
allocated and replacement replicas during delayed rebalancing.
matching WAGED placement. An absent or empty tag imposes no WAGED restriction.
InstanceGroupTagsetting andtask-resource propagation when no IdealState exists.
automatically migrating them. No live configuration changes.
This is active-consumer consolidation, not dead-code removal: WAGED
previously allowed ResourceConfig to override the IdealState tag.
REBALANCE_STRATEGYandSTATE_MODEL_FACTORY_NAMEare unchanged and remainoutside this standalone PR.
The September 23 paired census found 0 uppercase ResourceConfig tag
occurrences in 86,624 successful reads: 52,248 prod, 12,080 corp, 22,296 EI.
These are endpoint/namespace/cluster/resource tuples, not deduplicated physical
ZNodes. Discovery failures and scan-time churn prevent a fleet-wide absence claim.
Downstream audit: inspected 32 current source snapshots across 11 repositories,
pinned to commits and verified against Git blob hashes. No affected downstream
MP caller was found in inspected candidates: Espresso, Pinot, Search/SEAS, ACM
and Ambry tag accesses use IdealState; inspected constructors use retained
ID/ZNRecord overloads or Builder. Inspected Python raw writes target IdealState.
The sandbox
linkedin-sandbox/helixlisource copy does contain a legacyResourceConfig tag consumer in its own
AssignableReplica. Indexed source isnot proof about deployed binaries, reflection or unindexed callers; downstream
builds were not run.
Tests
tags; WAGED normal/delayed replicas; placement constraints; guardrail
alignment; task tags without IdealState; raw metadata preservation; and
topology-change detection.
Both commands ran with JDK 11 and completed with BUILD SUCCESS:
74 focused core tests, 17 shared-guardrail tests and 3 REST partition-assignment
tests; 94 passed, 0 failures/errors/skips. Core and REST production/test
sources compiled. The REST fixture emitted controller-absent and closed-ZK
cleanup logs while its assertions passed. No full repository suite was run.
Compiled API inspection confirmed the removed ResourceConfig members and
constructor signatures, plus retained IdealState, ExternalView and JobConfig
tag APIs.
Changes that Break Backward Compatibility (Optional)
Removed
ResourceConfigProperty.INSTANCE_GROUP_TAG,ResourceConfig.getInstanceGroupTag(), and Builder'sgetInstanceGroupTag()/setInstanceGroupTag(String).The multi-argument ResourceConfig constructor no longer takes a tag.
AssignableReplicaconstruction now requires the resource's IdealState afterthe ResourceConfig argument. Direct callers must update and rebuild; old
binaries linking to removed signatures are not compatible.
Legacy ResourceConfig tags no longer override IdealState or constrain WAGED
placement when IdealState has no tag. If a deployment relied on that override,
explicitly set its intended IdealState tag before upgrading and review the
placement impact. Helix does not automatically migrate the old value.
WorkflowConfig's inherited uppercase tag no longer populates a task-resource
tag. JobConfig's distinct
InstanceGroupTagsetting is unchanged.Documentation (Optional)
README documents the supported replacement, migration considerations, API
incompatibility, raw-field handling and task-setting distinction.
Commits
One standalone commit based on
dev, referencing CICP-52137.Code Quality
Follows existing Java/TestNG conventions.
git diff --checkpasses.No dependencies or build settings changed.
Tests generated with unit-tests plugin
🤖 Generated with GitHub Copilot CLI