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. > > >