Skip to main content

Compatibility Levels

Compatibility levels are broadly categorized into BACKWARD | FORWARD | FULL | NONE. Depending on whether TRANSITIVEis applied, it determines whether only the latest version or all previous versions will be checked. The default setting is BACKWARD.

  • BACKWARD: Ensures that data produced with the new schema can be processed without issues by consumers using the previous schema.
  • FORWARD: Ensures that data produced with the previous schema can be processed without issues by consumers using the new schema.
  • FULL: Ensures bidirectional compatibility between the new and previous schemas.
  • NONE: Allows all changes regardless of compatibility between the new and previous schemas.

Compatibility Levels Overview

Compatibility LevelAllowed ChangesCompatibility Check TargetRecommended Schema Upgrade Order
BACKWARDField deletion (required, optional), field addition (optional)Latest Version (Last)Consumer First
BACKWARD_TRANSITIVEField deletion (required, optional), field addition (optional)All Previous VersionsConsumer First
FORWARDField deletion (optional), field addition (required, optional)Latest VersionProducer First
FORWARD_TRANSITIVEField deletion (optional), field addition (required, optional)All Previous VersionsProducer First
FULLField deletion (optional), field addition (optional)Latest VersionNo Preference
FULL_TRANSITIVEField deletion (optional), field addition (optional)All Previous VersionsNo Preference
NONEAll changes allowedNot CheckedFlexibly Applied Based on Changes
Recommended Schema Upgrade Order

When updating a schema that both producers and consumers are using, the schema compatibility level dictates the order in which client schemas should be upgraded. If the recommended upgrade order is not followed, schema compatibility issues may arise, potentially compromising data consistency.