DGS-23025 Add AssociatedNameStrategy#2194
DGS-23025 Add AssociatedNameStrategy#2194Robert Yokota (rayokota) wants to merge 10 commits intomasterfrom
Conversation
|
🎉 All Contributor License Agreements have been signed. Ready to merge. |
There was a problem hiding this comment.
Pull request overview
Adds a new “ASSOCIATED” subject name strategy that resolves the subject via Schema Registry associations (with configurable fallback), and wires it into the existing Avro/JSON Schema/Protobuf serdes in both sync and async clients.
Changes:
- Introduces
SubjectNameStrategyType+STRATEGY_TYPE_MAP, and addsAssociatedNameStrategy/AsyncAssociatedNameStrategywith LRU caching and fallback behavior. - Adds Schema Registry client APIs + mock support for creating/querying/deleting associations.
- Extends Avro/JSON Schema/Protobuf (sync + async) serdes to support
subject.name.strategy.typeandsubject.name.strategy.conf, plus adds comprehensive tests.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/schema_registry/_sync/test_avro_serdes.py | Adds sync tests covering ASSOCIATED strategy, fallbacks, errors, cluster namespace, and caching. |
| tests/schema_registry/_async/test_avro_serdes.py | Adds async tests mirroring sync coverage for ASSOCIATED strategy behavior. |
| src/confluent_kafka/schema_registry/common/serde.py | Adds SubjectNameStrategyType enum and a type→function strategy map. |
| src/confluent_kafka/schema_registry/common/schema_registry_client.py | Adds association DTOs for association APIs (request/response models). |
| src/confluent_kafka/schema_registry/_sync/serde.py | Implements AssociatedNameStrategy and configure_subject_name_strategy plumbing in sync serdes. |
| src/confluent_kafka/schema_registry/_async/serde.py | Implements AsyncAssociatedNameStrategy and configure_subject_name_strategy plumbing in async serdes. |
| src/confluent_kafka/schema_registry/_sync/schema_registry_client.py | Adds sync REST APIs for get/create/delete associations. |
| src/confluent_kafka/schema_registry/_async/schema_registry_client.py | Adds async REST APIs for get/create/delete associations. |
| src/confluent_kafka/schema_registry/_sync/mock_schema_registry_client.py | Adds association storage and endpoints to the sync mock client for tests. |
| src/confluent_kafka/schema_registry/_async/mock_schema_registry_client.py | Adds association storage and endpoints to the async mock client for tests. |
| src/confluent_kafka/schema_registry/_sync/avro.py | Adds subject.name.strategy.type/conf config support and passes client/conf to ASSOCIATED strategy. |
| src/confluent_kafka/schema_registry/_async/avro.py | Same as sync Avro, for async serializer/deserializer. |
| src/confluent_kafka/schema_registry/_sync/json_schema.py | Adds subject.name.strategy.type/conf config support and passes client/conf to ASSOCIATED strategy. |
| src/confluent_kafka/schema_registry/_async/json_schema.py | Same as sync JSON Schema, for async serializer/deserializer. |
| src/confluent_kafka/schema_registry/_sync/protobuf.py | Adds subject.name.strategy.type/conf config support and passes client/conf to ASSOCIATED strategy. |
| src/confluent_kafka/schema_registry/_async/protobuf.py | Same as sync Protobuf, for async serializer/deserializer. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 16 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


What
Checklist
References
JIRA:
Test & Review
Open questions / Follow-ups