docusaurus/platform_versioned_docs/version-1.8/understanding-airbyte/airbyte-protocol-versioning.md
The goal of this document is to define our approach to protocol changes.
We need a compromise between frequent breaking changes that are heavy on operations and infinite backward compatibility which is a burden from a software engineering point of view.
We are using a <MAJOR>.<MINOR>.<PATCH> scheme for the Protocol Versioning. (see SemVer).
We increment the
To ensure continuous operation, we have a few safeguards to prevent breaking existing configuration through protocol version incompatibilities.
When removing support for older versions of the Protocol, there is a risk removing the support for a version that is currently used.
To mitigate this, as part of the pre-upgrade checks that happens in the airbyte-bootloader, we verify that any connector currently part of an active connection will still be supported after the upgrade.
If any connector fails this check, we abort the upgrade and the airbyte-bootloader logs contains a list of connectors to upgrade. Those connectors will need to be upgraded from the UI before the platform itself can be upgraded.
When upgrading a Connector from the UI, we will verify that the Protocol Version is supported before finalizing the Connector upgrade.