Schema Evolution Compatibility Matrix
| Compatibility Type | Changes allowed | Check against which schemas | Upgrade first |
|---|---|---|---|
BACKWARD |
- Delete fields - Add optional fields |
Last version | Consumers |
BACKWARD_TRANSITIVE |
- Delete fields - Add optional fields |
All previous versions | Consumers |
FORWARD |
- Add fields - Delete optional fields |
Last version | Producers |
FORWARD_TRANSITIVE |
- Add fields - Delete optional fields |
All previous versions | Producers |
FULL |
- Add optional fields - Delete optional fields |
Last version | Any order |
FULL_TRANSITIVE |
- Add optional fields - Delete optional fields |
All previous versions | Any order |
NONE |
- All changes are accepted | Compatibility checking disabled | Depends |
Flashcards
What changes are allowed in BACKWARD compatibility and what needs to be upgraded first?:: BACKWARD allows deleting fields and adding optional fields. Consumers must be upgraded first.
What changes are allowed in BACKWARD_TRANSITIVE compatibility and how does it differ from BACKWARD?:: BACKWARD_TRANSITIVE allows deleting fields and adding optional fields, but checks against all previous versions instead of just the last version. Consumers must be upgraded first.
What changes are allowed in FORWARD compatibility and what needs to be upgraded first?:: FORWARD allows adding fields and deleting optional fields. Producers must be upgraded first.
What changes are allowed in FORWARD_TRANSITIVE compatibility and how does it differ from FORWARD?:: FORWARD_TRANSITIVE allows adding fields and deleting optional fields, but checks against all previous versions instead of just the last version. Producers must be upgraded first.
What changes are allowed in FULL compatibility and what's unique about its upgrade order?:: FULL allows adding optional fields and deleting optional fields. Components can be upgraded in any order.
What changes are allowed in FULL_TRANSITIVE compatibility and how does it differ from FULL?:: FULL_TRANSITIVE allows adding optional fields and deleting optional fields, but checks against all previous versions instead of just the last version. Components can be upgraded in any order.
What is special about NONE compatibility?:: NONE accepts all changes and disables compatibility checking. The upgrade order depends on the specific changes made.