Jun,
I like the idea of an explicit version field, if the schema can be derived
from the topic name itself. The storage (say 1-4 bytes) would require less
overhead than a 128 bit md5 at the added cost of managing the version#.

Is it correct to assume that your applications are using two schemas then,
one system level schema to deserialize the schema id and bytes for the
application message and a second schema to deserialize those bytes with the
application schema?

Thanks again!
Shone


On Wed, Jun 12, 2013 at 11:31 AM, Jun Rao <jun...@gmail.com> wrote:

> Actually, currently our schema id is the md5 of the schema itself. Not
> fully sure how this compares with an explicit version field in the schema.
>
> Thanks,
>
> Jun
>
>
> On Wed, Jun 12, 2013 at 8:29 AM, Jun Rao <jun...@gmail.com> wrote:
>
> > At LinkedIn, we are using option 2.
> >
> > Thanks,
> >
> > Jun
> >
> >
> > On Wed, Jun 12, 2013 at 7:14 AM, Shone Sadler <shone.sad...@gmail.com
> >wrote:
> >
> >> Hello everyone,
> >>
> >> After doing some searching on the mailing list for best practices on
> >> integrating Avro with Kafka there appears to be at least 3 options for
> >> integrating the Avro Schema; 1) embedding the entire schema within the
> >> message 2) embedding a unique identifier for the schema in the message
> and
> >> 3) deriving the schema from the topic/resource name.
> >>
> >> Option 2, appears to be the best option in terms of both efficiency and
> >> flexibility.  However, from a programming perspective it complicates the
> >> solution with the need for both an envelope schema (containing a "schema
> >> id" and "bytes" field for record data) and message schema (containing
> the
> >> application specific message fields).  This requires two levels of
> >> serialization/deserialization.
> >> Questions:
> >> 1) How are others dealing with versioning of schemas?
> >> 2) Is there a more elegant means of embedding a schema ids in a Avro
> >> message (I am new to both currently ;-)?
> >>
> >> Thanks in advance!
> >>
> >> Shone
> >>
> >
> >
>

Reply via email to