Skip to content

Version population key encoding in shared materialization identity - #671

Merged
zzylol merged 30 commits into
mainfrom
feat/population-key-encoding
Sep 11, 2026
Merged

zzylol merged 30 commits into
mainfrom
feat/population-key-encoding

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Population routing needs an explicit identity version before replacing delimiter-based keys. Silently changing the codec would let the same installed policy resolve different physical populations.

Add PopulationKeyEncoding to the existing materialization and data descriptor contracts. Legacy is the default and is omitted from serialization; its fingerprint path remains unchanged. Canonical label encoding uses a separate policy/data identity domain and catalog validation requires configuration agreement. Both typed installation and legacy YAML startup reject canonical encoding until its runtime consumer is implemented.

Before: the shared label codec existed without an installed routing version. After: configurations can represent the new version without silently enabling it or changing legacy identity. This PR does not enable group routing or maintenance execution.

Validation: 104 shared tests pass, including identity/serde compatibility, unknown version rejection, custom sink parsing, and typed installation rejection. Actual-library-139 legacy YAML rejection test passes (1/1). CP all-target check passes. The final ancestry merge preserves #668 multi-source validation; all 104 shared tests also pass on the final head. No performance claim.

@zzylol
zzylol changed the base branch from feat/compile-multi-source-maintenance to main September 11, 2026 19:35
@zzylol
zzylol marked this pull request as ready for review September 11, 2026 19:36
@zzylol
zzylol merged commit b435911 into main Sep 11, 2026
1 check passed
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.

1 participant