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