API Compatibility
As stated in our Versioning Policy, backward compatibility is preserved across all maintenance versions.A product built on a previous maintenance version can be upgraded without requiring any modifications.
Extensible Types: Enums and Sealed Interfaces
Adding a new entry to anenum or a new permitted type to a sealed interface is not considered a breaking change in Atoti’s compatibility policy.
However, these additions can break source compatibility if downstream code uses an exhaustive switch expression without a default branch:
default branch would avoid the compilation error but may result in a runtime failure instead when the unhandled case is reached.
Thus, it is recommended to not have a default branch in order to be notified by the compiler when a new enum variant/new type is added.
Compatibility Policy for Nodes in a Cluster
An Atoti application can be distributed across multiple nodes, potentially running in separate Java processes.Atoti does not guarantee backward compatibility between node processes running different versions.
When nodes operate on different versions, communication issues may arise due to changes in internal messaging and data structures.
However, we recognize the importance of smooth upgrades.
Therefore, while backward compatibility is not ensured, we commit to the following:
- Such changes will be rare.
- They will be explicitly documented in the changelog.