> For the complete documentation index, see [llms.txt](https://adidas.gitbook.io/api-guidelines/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adidas.gitbook.io/api-guidelines/asynchronous-api-guidelines/kafka-asynchronous-guidelines/f_schema_data_evolution/backward-compatibility.md).

# Backward Compatibility

There are two variants here:

* BACKWARD - Consumers using a new version (X) of a schema can read data produced by the previous version (X - 1)
* BACKWARD\_TRANSITIVE - Consumers using a new version (X) of a schema can read data produced by any previous version (X - 1, X - 2, ....)

The operations that preserve backward compatibility are:

* Deleting fields
  * Consumers with the newer version will just ignore the non-existing fields
* Adding optional fields (with default values)
  * Consumers will set the default value for the missing fields in their schema version

<figure><img src="/files/4KjICYUxpTLc9hlAyeYO" alt=""><figcaption></figcaption></figure>
