Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-2918

Schema polymorphism

    XMLWordPrintableJSON

Details

    • Support using named types as base types for new schemas. Properties are inherited by default.
    • Core
    • Important

    Description

      Include the option to use named types as base types for a new schema. Allow for MRO generation. Field inheritance. 

      The benefits of this approach include:

      • Defining a schema as validation for a certain wire, and so allowing the receiver to be certain of the structure of the data (this works today). However, defining an extension of this schema, or certain schemas which can be normalized to the original schema, but contain additional information, will not allow it to be sent over the same wire.
      • Backwards compatibility through inheritance - you never break the old schema, thus allowing a long integration period, with no need to recode all processes familiar with the schema. The new schema will simply inherit the old one, and only add information.
      • Allow for full data control through polymorphism, and the ability to replace structures within any supported language. 

      Attachments

        Issue Links

          Activity

            People

              clesaec Christophe Le Saec
              jonirap Jonathan Rapoport
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 96h
                  96h
                  Remaining:
                  Remaining Estimate - 95h 20m
                  95h 20m
                  Logged:
                  Remaining Estimate - 95h 20m
                  40m