[cdc] Add KME schema reader in CDC to support schema evolution#2177
Merged
sushantmane merged 3 commits intoOct 2, 2025
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR adds KME (Kafka Message Envelope) schema reader support in CDC to handle schema evolution. The main purpose is to prevent CDC failures when KME schema evolves by enabling proper deserialization of records with newer schema versions.
- Introduces a configurable KME schema reader that can be enabled via
kme.schema.reader.for.schema.evolution.enabled - Refactors PubSubMessageDeserializer creation to use the new schema-aware deserializer when conditions are met
- Updates dictionary reading functionality to accept custom deserializers
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| DictionaryUtils.java | Adds overloaded method to accept custom PubSubMessageDeserializer for dictionary reading |
| PubSubMessageDeserializer.java | Adds documentation warning against using default deserializers in production |
| ConfigKeys.java | Introduces new configuration flag for enabling KME schema reader |
| VeniceChangelogConsumerImpl.java | Updates dictionary reading to use the new schema-aware deserializer |
| VeniceChangelogConsumerClientFactory.java | Implements logic to create KME-backed deserializer when enabled and D2 client is available |
| ChangelogClientConfig.java | Removes hardcoded PubSubMessageDeserializer field to enable dynamic creation |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
kvargha
reviewed
Oct 2, 2025
fe3c7e6 to
3fb9d06
Compare
There was a problem hiding this comment.
Pull Request Overview
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
kvargha
approved these changes
Oct 2, 2025
Contributor
Author
|
Thanks for the review, @kvargha! |
arjun4084346
pushed a commit
to arjun4084346/venice
that referenced
this pull request
Dec 9, 2025
…din#2177) CDC currently fails when KME schema evolves, since records encoded with newer schema cannot be deserialized. This change introduces a KME schema reader so that records with updated schema versions can be deserialized and processed correctly.
sushantmane
added a commit
to sushantmane/venice
that referenced
this pull request
Jan 30, 2026
…din#2177) CDC currently fails when KME schema evolves, since records encoded with newer schema cannot be deserialized. This change introduces a KME schema reader so that records with updated schema versions can be deserialized and processed correctly.
misyel
pushed a commit
to misyel/venice
that referenced
this pull request
Feb 2, 2026
…din#2177) CDC currently fails when KME schema evolves, since records encoded with newer schema cannot be deserialized. This change introduces a KME schema reader so that records with updated schema versions can be deserialized and processed correctly.
sushantmane
added a commit
to sushantmane/venice
that referenced
this pull request
Feb 8, 2026
…din#2177) CDC currently fails when KME schema evolves, since records encoded with newer schema cannot be deserialized. This change introduces a KME schema reader so that records with updated schema versions can be deserialized and processed correctly.
misyel
pushed a commit
to misyel/venice
that referenced
this pull request
Feb 17, 2026
…din#2177) CDC currently fails when KME schema evolves, since records encoded with newer schema cannot be deserialized. This change introduces a KME schema reader so that records with updated schema versions can be deserialized and processed correctly.
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.
[cdc] Add KME schema reader in CDC to support schema evolution
CDC currently fails when KME schema evolves, since records encoded with newer schema
cannot be deserialized. This change introduces a KME schema reader so that records
with updated schema versions can be deserialized and processed correctly.
Code changes
Concurrency-Specific Checks
Both reviewer and PR author to verify
synchronized,RWLock) are used where needed.ConcurrentHashMap,CopyOnWriteArrayList).How was this PR tested?
Does this PR introduce any user-facing or breaking changes?