Hi,
I'm relatively new to avro, and I'm still struggling with getting schema
evolution and related issues. But today it should be simple question.

What is recommended naming of types if we want to use schema evolution?
Should namespace contain some information about version of schema? Or
should it be in type itself? Or neither? What is the best practice? Is
evolution even possible if namespace/type name is different?

I thought that "neither" it's the case, built the app so that version ID is
nowhere except for the directory structure, only latest version is compiled
to java classes using maven plugin, and parsed all other avsc files in code
(to be able to build some sort of schema registry, identify used writer
schema using single object encoding and use schema evolution). However I
used separate Parser instance to parse each schema. But if one would like
to use schema imports, he cannot have separate parser for every schema, and
having global one in this setup is also not possible, as each type can be
registered just once in org.apache.avro.Schema.Names. Btw. I favored this
variant(ie. no ID in name/namespace) because in this setup, after I
introduce new schema version, I do not have to change imports in whole
project, but just one line in pom.xml saying which directory should be
compiled into java files.

so what could be the suggestion to correct naming-versioning scheme?
thanks,
M.

Reply via email to