- BACKWARD: consumers using the new schema can read data written by producers using the latest registered schema.
- BACKWARD_TRANSITIVE(default): consumers using the new schema can read data written by producers using all previously registered schemas.
- FORWARD: consumers using the latest registered schema can read data written by producers using the new schema.
- FORWARD_TRANSITIVE: consumers using all previously registered schemas can read data written by producers using the new schema.
- FULL: the new schema is forward and backward compatible with the latest registered schema.
- FULL_TRANSITIVE: the new schema is forward and backward compatible with all previously registered schemas.
- NONE: schema compatibility checks are disabled.
TRANSITIVE, it means that schema will be compared against all versions before,
not only the last one.
The table shows which applications consumers / producers should be upgraded first.
| Compatibility Type | What is allowed | Upgrade first | 
|---|---|---|
| BACKWARD[_TRANSITIVE] | Delete fields. Add optional fields. | Consumers | 
| FORWARD[_TRANSITIVE] | Add fields. Delete optional fields. | Producers | 
| FULL[_TRANSITIVE] | Add optional fields.Delete optional fields. | Any order | 
| NONE | All changes are accepted. | Not Applicable |