-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle schema references #195
Comments
Here's what the client sent to Karapace:
(in case an example is useful) |
Any updates? We would like to depend on karapace for license reasons but need to have feature compatibility regarding the schema-references |
@alpreu currently we are not working on this feature. PRs are welcome :) |
For https://crates.io/crates/schema_registry_converter references are also supported for almost a year now. It would be nice if they were supported by karapace as well. |
confluent-kafka-python also sends
|
Hi, a bit confused here. My understanding is that there is no support for schema references, so is there an alternative in order to avoid redundant embedded schemas? |
@ChristosMantzouranisMT you can use Confluent Schema registry, if that's an option and you want to use references. Or you could build some tooling so you can embed them dynamically. |
@gklijs I am using aiven's hosted service so, using Confluent Schema registry is not an option ,thanks for your answer. |
We at Instaclustr have commenced work to support Protobuf Schema references. Here is the draft plan of PR's we are working on. The implementation plan consists of the following PRs to Aiven Karapace repository. Question to @hackaugusto or @lornajane - Can the PRs be conducted in official Aiven’s Karapace GitHub repository instead of Instaclustr's fork? For example, PR1 is not feature-complete functionality, it is required to implement other PRs? PR2, PR3, where as PR4 can be considered feature-complete once implemented. Protobuf Schema References Implementation in KarapacePR 1Add references support to all the required endpoints. The functionality is about 90% common to all the protocols (i.e. Avro, JSON, Protobuf, etc.). All the requests, responses, and ways of storing data in Kafka should be 1-to-1 compatible with Schema Registry:
PR 2Support references (imports) in Protobuf schemas.
PR 3Support Known Dependencies (KD) in Protobuf schemas
PR 4Serialize and deserialize using Protobuf schemas with imports
|
Should be fine as long as the tests are passing and the code can be released :) |
Hi We have a PR ready in our forked repository. Thought before we raise the PR to upstream repository, we can get some feedback and a review from you all. PR - instaclustr#21. PR 1 consists of the following changes.Add references support to all the required endpoints. The functionality is about 90% common to all the protocols (i.e. Avro, JSON, Protobuf, etc.). All the requests, responses, and ways of storing data in Kafka should be 1-to-1 compatible with Schema Registry:
Cheers, |
@hackaugusto let me know if it is ok to review the PR on instaclustr/karapace fork? or should we raise the PR to avien/karapace upstream? We prefer the reviewing on our fork before we raise the PR to upstream, but ok with raising it to the upstream as well. The PR is ready for review as mentioned above. Cheers, |
Hello, Just following up on the PR review for instaclustr#21? If anyone of you have time to provide some feedback? We are continuing to work on PR # 2 as per the plan above. |
Hi @hackaugusto following up again on the PR #1 review. Sorry to follow up so many times, but I am working with a deadline on this project, it will be helpful if we can get the PR review done. Thanks in advance. |
Hi @sujayinstaclustr, no worries. @jjaakola-aiven is doing the review :) |
@sujayinstaclustr What is the plan for the Avro and JSON support? |
@jjaakola-aiven based on when protobuf support is complete, we will come up with a plan on working to support Avro and JSON. Is there a preference for which one to support, Avro or JSON? I am asking because I have limited resources and budget I am working with. Cheers |
@sujayinstaclustr I would prefer Avro, it is the default format. |
@jjaakola-aiven We have the second PR also ready for your review - instaclustr#23
|
Hi @jjaakola-aiven Let me know if you can start reviewing and hope there are not a lot of changes required. |
@jjaakola-aiven Gentle reminder for reviewing PR# 23 |
@jjaakola-aiven @hackaugusto reminder to review PR# 23 Thanks in advance |
@jjaakola-aiven @hackaugusto could this be reviewed? or could someone else take it to move it forward? |
@encima this is being reviewed and there was some feedback on the PR from @jjaakola-aiven. We finished some of the review feedback changes. |
Hello! I hope everyone is doing well -- I have been working on cleaning up the commit history and I got pretty far along in organising the work done in #467, #473 and #504 I had put together a PR on my personal repo before leaving for vacation: RyanSkraba#1 that mostly works. This has little new code: it's all rebasing and reorganising the work that has diverged in the 3 PRs I mentioned. I especially made an effort to retain all authorship for who wrote what, and hopefully I didn't make any mistakes. IIRC the broken bits were related to different python versions. I'd like to take this back up when I get back into the office in about a week -- it's gotten big and unwieldy enough that merge conflicts are a real pain, and it looks like there's some new conflicts since my last effort! |
@jjaakola-aiven |
I created PR with References/Dependencies few month ago but it was not reviewed by Aiven and was deprecated because main branch development go forward and branch which was created for references/dependencies PR nobody keep in sync with main branch. Now I synced my code with main branch and created new pull request #560 I hope somebody can review it. |
Hey thanks @libretto ! I know it couldn't have been easy to redo this with I've launched the workflows for your PR, and it'll be my priority! @drognisep Have you taken a look at the proposition? This first pass supports Protobuf only. |
@RyanSkraba That happens to work perfectly for us. 😁 |
Karapace 3.5.0 was a first release with support for |
I ran into an error using https://github.com/riferrei/srclient which is a Go client for Kafka with Confluent Schema Registry support. That (since v5.5 I believe) has support for schema references, however Karapace sees this as an unknown field and gives an error:
Looking at what the client is sending, it's an empty
[]
field namedreferences
at the same level asschema
andschemaType
.What I expected: Karapace should ignore/tolerate this field, even if it doesn't have support for schema references quite yet.
The text was updated successfully, but these errors were encountered: