I've used recursion in the past to use Avro to get a binary representation
of JSON. Given the popularity of JSON and the fact that Avro includes
support for converting it, I think it makes sense to continue allowing
recursive schemas.

On Fri, Nov 30, 2018 at 2:12 PM Michael A. Smith <[email protected]>
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 <[email protected]> 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.
> >
>


-- 
Ryan Blue
Software Engineer
Netflix

Reply via email to