I think that recursive schemas are a powerful feature of Avro that enable
the modelling of hierarchies,
a pretty common data structure. l myself have used this feature in a large
scale system before.
The recursion is handled elegantly and naturally in the code with recursive
functions so I don't think
it adds much complexity.

On Fri, 30 Nov 2018 at 22:12, Michael A. Smith <mich...@smith-li.com> wrote:

> I’m against this proposal. Sure, recursion adds complexity, but recursive
> types are also extremely powerful and one of the most interesting features
> of a tool like this. I have been experimenting in the other direction;
> considering a way to compose avro schema descriptions in avro. Recursion is
> crucial for that, so that we can lay out possible types as a union of named
> types that include themselves.
>
> Granted, it’s an experiment that would also imply a compatibility break
> with previous avros, but it opens what I think is an interesting set of
> doors instead of closing them.
>
> My 2 cents.
>
> On Fri, Nov 30, 2018 at 13:22 Raymie Stata <ray...@gmail.com> wrote:
>
> > I understand we've been willing to introduce backward-incompatible API
> > changes (not file-format changes) into minor release versions.  If so,
> > here's an idea for consideration:
> >
> > Let's eliminate recursive records from Avro 1.9.x.  Recursion
> > introduces a _lot_ of complexity into many parts of the Avro code
> > base.  We could vastly simplify the code base, and probably speed
> > things up, by getting rid of this feature.
> >
> > The specific proposal would be that Avro 1.9.x would refuse to accept
> > recursive records, and thus would not be able to read binary files
> > written by older versions of Avro.  I haven't heard of anyone actually
> > using them, so I don't think this would be a problem.
> >
>

Reply via email to