Last active
January 10, 2022 11:53
-
-
Save teabot/e2562894d77fb49ec302803e5b539593 to your computer and use it in GitHub Desktop.
Avro evolution questions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Action | BACKWARD TRANSITIVE | FORWARD TRANSITIVE | FULL TRANSITIVE | |
---|---|---|---|---|
Can I add a new field with a default value? | Yes | Yes | Yes | |
Can I add a new field without a default value? | No | Yes | No | |
Can I remove an existing field with a default value? | Yes | Yes | Yes | |
Can I remove an existing field without a default value? | Yes | No | No | |
Can I rename an existing field with an alias? | Yes | Yes | Yes | |
Can I rename an existing field without an alias? | No | No | No | |
Can I add a default value to an existing field? | Maybe | Maybe | Maybe | |
Can I remove a default from an existing field? | Maybe | Maybe | Maybe | |
Can I make an existing field nullable? | Yes | No | No | |
Can I make an existing field a union? | Yes | No | No | |
Can I add a type to an existing union? | Yes | No | No | |
Can I remove a type from an existing union? | No | No | No | |
Can I promote an existing int field to a long, float, or double? | Yes | No | No | |
Can I promote an existing float field to a double? | Yes | No | No | |
Can I promote an existing long field to a float or double? | Yes | No | No | |
Can I demote an existing long field to an int? | No | Yes | No | |
Can I demote an existing double field to a float or int? | No | Yes | No | |
Can I demote an existing float field to an int? | No | Yes | No | |
Can I add another value to an existing enum? | Yes | Maybe | Maybe | |
Can I remove a value from an existing enum? | No | No | No | |
Can I change string to bytes? | Yes | Yes | Yes | |
Can I change bytes to string? | Yes | Yes | Yes | |
Can I evolve the elements of an array? | Recurse on array element type | Recurse on array element type | Recurse on array element type | |
Can I evolve the values of a map? | Recurse on map value type | Recurse on map value type | Recurse on map value type | |
Must I update the consumer before sending events using my new schema? | Yes | No | No | |
Must I update the producer before consuming events using my new schema? | No | Yes | No | |
Can I do anything else not on this list of questions? | Probably not | Probably not | Probably not |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment