Comments (13)
VersionedStorable adding a globally unique id to this in the tables/storage would then be able from a single unique id, retrieve a vesionedstorable , which then using this retrieved object can use the root entity to get back the schemametadata also
from registry.
On checking it seems there already is a unique id named "id" for SchemaVersionStorable :), could just use this.
from registry.
id = globally unique id for a schema aka this could be SchemaVersionStorable id.
methods/apis needed to implement that Confluent Avro Serializer/Deserilizer invokes.
Serializer:
int register(subject, schema)
POST /subjects/{subject}/versions
body:
{"schema": "{\"type\": \"string\"}"}
Deserializer:
Schema getBySubjectAndID(subject, id) actually delegates for remote call ->SchemaString getByID(id)
GET /schemas/ids/{id}
int getVersion(subject, schema) actually delegates for remote call -> Schema lookUpSubjectVersion(subject, schema)
POST /subjects/{subject}
body:
{"schema": "{\"type\": \"string\"}"}
from registry.
@satishd We have this now implemented with tests locally ready to share/raise PR for, it builds on some of the other PR's we have open though, to avoid nasty merge conflict issues, any possibility having merged our current PR's
and then ill sort the merge conflicts on this one:
from registry.
@michaelandrepearce I am fine with having confluent schema registry compatible API but I would like to know your plans on migration path.
We would expect users would need to eventually change ser/des on their existing applications. New application can start this registry ser/des and respective APIs.
from registry.
@satishd with having this will mean we can use confluent serdes, so on day one its just a service switch out, as in we can re-route via networking or quick runtime property change, no need for code deploys, which in a large environment would be almost impossible. the selling point is to have a global schema registry (one source of truth)
We will have for a long time the need to run with confluent protocol on some flows, (0x0 + int id + serialised data), thus my suggestion (issue raised) we adopt this also at client level for produce/consume, so we can migrate clients serdes easier as it also would be compatible, reason why is there is a large eco-system already supporting this. If not any such any flow still not able to migrate will have to remain on the confluent serdes until support is added. Which would hinder adoption.
Areas that would cause this for us as current are:
-
Language Support
** C++ clients
** Python clients -
ThirdParty Tools/Systems e.g.
** Vertica
** StreamSets
from registry.
@michaelandrepearce That makes sense. It would be great if you can write a doc or wiki about the migration path that you are following, it will be useful to other users.
from registry.
@satishd will do, and happy to contribute this, could you possibly suggest a sensible location for us to make this wiki page.
from registry.
@michaelandrepearce You can add as a new wiki page here for now.
from registry.
@michaelandrepearce @satishd it would be good to have this in docs here https://github.com/hortonworks/registry/tree/master/docs and they will be published once we merge here http://registry-project.readthedocs.io
But whichever makes it easy to get this in, if wiki is easier lets do that. This is been most asked question so far.
from registry.
Thanks @harshach @satishd , i have raised a PR #164 for initial review, its not 100% so not quite ready for merge (e.g. need to adjust commit messages etc), but if you could read over, cheers.
from registry.
@michaelandrepearce ConfluentSchemaRegistryCompatibleResource and confluent protocol ser/des addresses compatible required for migration from confluent SR. Do we have anything remaining for migration w.r.t compatible API? If not, we can close this issue.
from registry.
@satishd i think so, anything else can just be a new issue. Ill close it now.
from registry.
Related Issues (20)
- Remove all server-side caches from Schema Registry
- Upgrade Scala to 2.13.10 due to CVE-2022-36944
- Support deserialization when the topic and schema names don't match
- SchemaVersionProtocolHandlerTest is flaky
- Upgrade Dropwizard to the latest version
- support for auto register schemas via properties HOT 1
- Make jar signing optional in the build.
- Support rolling upgrade
- Fix compile error in JsonSerDesHandlerTest
- Exclude vulnerable snakeyaml from Schema Registry libs
- Change the format of mTLS principal mapping rules to be consistent with kafka
- Schema Registry Client does not update its cache when a schema version deleted
- SR client SchemaVersionInfoCache is not thread safe
- Schema registry migrate k8s /ci tests to testcontainer setup
- Schema fingerprinting handles union ordering as distinctive feature
- SR server does not handle SchemaParseException properly
- SR client SchemaMetadataCache leaks memory
- SR server does not handle SchemaParseException properly
- high concurrency r/w trigger the full table scan which got stuck
- Hortonwork Schema Registry 1.0.0 (Invalid POM) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from registry.