1
0
mirror of synced 2025-12-20 10:32:35 -05:00
Files
airbyte/docs/platform/understanding-airbyte/airbyte-protocol-versioning.md
Ian Alton 01cd16654e 11059 multi-instance, versioned docs (#58095)
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-04-24 02:58:09 +03:00

40 lines
2.1 KiB
Markdown

# Airbyte Protocol Versioning
## Goal
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.
## Versioning Scheme
We are using a `<MAJOR>.<MINOR>.<PATCH>` scheme for the Protocol Versioning. (see [SemVer](https://semver.org/)).
We increment the
- MAJOR version when you make incompatible protocol changes
- MINOR version when you add functionality in a backwards compatible manner
- PATCH version when you make backwards compatible bug fixes
## Development Guidelines
1. We will continue to do our best effort to avoid introducing breaking changes to the Airbyte Protocol.
2. When introducing a new minor version of the Airbyte Protocol, new fields must come with sensible defaults for backward compatibility within the same major version, or be entirely optional.
3. When introducing a new major version of the Airbyte Protocol, all connectors from the previous major version will continue to work. This requires the ability to “translate” messages between 1 major version of the Airbyte Protocol.
## Safeguards
To ensure continuous operation, we have a few safeguards to prevent breaking existing configuration through protocol version incompatibilities.
### When upgrading Airbyte
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
When upgrading a Connector from the UI, we will verify that the Protocol Version is supported before finalizing the Connector upgrade.