Skip to content
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

Does it have a go-client? #1091

Closed
alok87 opened this issue Dec 16, 2020 · 6 comments
Closed

Does it have a go-client? #1091

alok87 opened this issue Dec 16, 2020 · 6 comments
Labels
type/question Further information is requested

Comments

@alok87
Copy link

alok87 commented Dec 16, 2020

Do we have a go-client to talk to apicurio-registry? Also does it support AVRO storage in kafka?

@EricWittmann EricWittmann added the type/question Further information is requested label Dec 16, 2020
@EricWittmann
Copy link
Member

We have a REST API you can use and a Java client, but we don't currently have a Go client. However, we do have support for the Confluent Schema Registry API (in addition to our own API), so if there is a Go client for that you could try it.

@EricWittmann
Copy link
Member

I'm not sure what you mean by supporting Avro storage in Kafka. We certainly support Avro schemas stored as artifacts in the registry. But if you are asking whether we use Avro to encode data when we use Kafka as our storage mechanism, then no - we're using Protobuf in the Streams storage implementation and JSON (currently) in the new Kafka+SQL storage implementation.

@alok87
Copy link
Author

alok87 commented Dec 17, 2020

Thank you for the detailed answers.

In one of the projects, we wanted to support both the confluent schema registry and the apicurio schema registry. I was building an adapter to support both.

  1. Here is the go client for confluent schema registry https://github.com/confluentinc/schema-registry will this work for apicurio as well? Is there a plan to have a go-client in the future?
  2. Also does moving to apicurio in Debezium from the confluent schema registry is as straightforward as changing the schema registry URL?

alok87 added a commit to practo/tipoca-stream that referenced this issue Dec 17, 2020
@EricWittmann
Copy link
Member

I have not personally tested either of these myself, so ymmv.

  1. Because we have also implemented Confluent's schema registry API, that go client should work as long as you give it the right URL. We do not currently have plans to create our own go client, but anything is possible!
  2. I assume this should work, but I also assume that Debezium can be configured to use Apicurio Serdes classes instead of the Confluent ones. Maybe @jpechane or @gunnarmorling could comment on this??

By the way, the Apicurio Registry API URL is this:

https://host:port/api

But if you want to use a Confluent client of some kind (e.g. the Go client) then you need to use this:

https://host:port/api/ccompat

@gunnarmorling
Copy link
Contributor

Ad 2., yes, that migration should be as straight-forward as that if you use the ccompat API. If you want to use Apicurio's own API, you'd have to use the Apicurio Connect converters instead of Confluent's. The required steps are described here. If you use Debezium's container image for Kafka Connect, they come with the Apicurio converters baked in already. Also look here for a comprehensive example.

@alok87
Copy link
Author

alok87 commented Dec 17, 2020

Thank you, that answers all the questions. :)

@alok87 alok87 closed this as completed Dec 17, 2020
alok87 added a commit to practo/tipoca-stream that referenced this issue Jun 5, 2021
alok87 added a commit to practo/tipoca-stream that referenced this issue Jun 7, 2021
alok87 added a commit to practo/tipoca-stream that referenced this issue Jun 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants