registry icon indicating copy to clipboard operation
registry copied to clipboard

Schema Registry implementation for Protobuf desired

Open xufuture opened this issue 7 years ago • 9 comments

Due to gRPC's popularity in many embedded systems, Schema Registry for Protobuf is highly desired, which is also already claimed by Hortonworks as an advantage over other choice (http://registry-project.readthedocs.io/en/latest/competition.html)

xufuture avatar Aug 02 '17 21:08 xufuture

@xufuture protobuf encoded messages contain information about schema and it may not require for users to pass schema version ids etc with the payload. IMHO, SchemaRegistry is still useful for protobuf in schema discovery and respective serializer/deserializer. (disclaimer: I am not an expert in protobuf and its APIs) What are your usecases for protobuf support in SchemaRegistry?

satishd avatar Aug 03 '17 04:08 satishd

@satishd protobuf does not contain schema in its encoded message, you require generated class from IDL to decode it. although it requires code generation(compilation of IDL) before its use, If hortonworks schema registry can provide support to store and check backward/forward compatibility it would be very useful as @xufuture mentioned.

jhsenjaliya avatar Nov 05 '19 20:11 jhsenjaliya

@satishd @raju-saravanan @arunmahadevan we are planning to add protobuf support. created #721 can u guys pls provide comments and support or direct to right engineers who can help us review? Thanks

jhsenjaliya avatar Apr 20 '20 23:04 jhsenjaliya

I think using the json representation of the schema e.g. the proto variant would be better. As like done with avro. The protobuf json schema is more workable when doing bits in ui etc.

michaelandrepearce avatar Apr 21 '20 02:04 michaelandrepearce

Need to ensure the confluent sr compatibility api works with protobuf in same was confluents sr does to maintain compatibility.

michaelandrepearce avatar Apr 21 '20 02:04 michaelandrepearce

Regarding JSON, yes, that would an easy way, but it changes the schema language. we can probaly have both. would start with JSON for now. Thanks for the suggestion.

jhsenjaliya avatar Apr 21 '20 08:04 jhsenjaliya

Dont forget about compatibility layer we have with confluents which theire supports proto now. As they provide many kafka clients for other languages such as .net c++ etc and thus makes ability to use those with this registry.

michaelandrepearce avatar May 08 '20 16:05 michaelandrepearce

Sure, I may have to take some iterative way of adding all these, as I am only adding the basic protobuf support first. but I will make sure we dont break any exisiting feature like the one u just mentioned - compatibility with confluent api.

jhsenjaliya avatar May 09 '20 03:05 jhsenjaliya

The reason i flag that is that its important from the outset is incase the way the confluent api and proto clients handle it differ to the way you initally thought to do then you will have big compatibility issues later. Which unless designed in at first it will be problematic

michaelandrepearce avatar May 09 '20 06:05 michaelandrepearce