SR: Implement cached schema registry client #1049
Merged
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.
Description
This PR implements a cached Schema Registry client. The client caches schemas based on their IDs, subject/fingerprint and subject/version. This makes it possible to prevent round trips when registering new schemas (needed in
autoRegister
encoder strategy), fetching schemas using subject/version (needed inregistry
encoder strategy) and fetching schemas by their ID (needed in decoder).Integration tests run against the Confluent schema registry.
NB: The code currently does not compile, it depends on twmb/franz-go#461. Other than updating the dependency, there are no more changes planned.It's merged.Fixes #1048
Quick checks: