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