The following rules currently apply for Jet for compile time and runtime compatibility.
Hazelcast Jet uses Semantic Versioning which can be summarized as follows:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
This means that a Jet job written using Pipeline API in a previous minor version should compile in later minor versions.
However some exceptions apply:
- Classes in
com.hazelcast.jet.corepackage which form the only provide PATCH level compatibility guarantee.
- Types and methods annotated with
@EvolvingApionly provide PATCH level compatibility guarantee. These are typically new features where the API is subject to further changes.
- Classes in
implpackages do not provide any compatibility guarantees between versions and are not meant for public use.
The compatibility guarantees can be summarized as follows:
|Compile Time||Job API||MINOR|
|Compile Time||Pipeline API||MINOR|
|Compile Time||Core API||PATCH|
|Runtime||Member to Member||NONE|
|Runtime||Management Center to Member||NONE|
|Runtime||Client to Member||PATCH|
|Runtime||Command Line Tools||MINOR|
|Runtime||Configuration XML files||PATCH|
Jet requires that all members in a cluster use the same PATCH version. When updating Jet to a newer PATCH version, the whole cluster must be shutdown and restarted with the newer version at once.
Management Center, like members, is only compatible with the same PATCH version. This means that Management Center and the cluster must have the exact same PATCH version to be compatible.
Jet clients are compatible with the members running on the same MINOR version. This means that a client using an older or newer PATCH version should be able to connect and work with a cluster that's running a different PATCH version.
Job State Compatibility
Job state is only compatible across the same MINOR version and only backwards-compatible i.e. a newer PATCH version is be able to understand the job state from a previous PATCH version.
This means that if you have a running job, using the Job Upgrade and Lossless Cluster Restart features you are able to upgrade the cluster to a newer PATCH version without losing the state of a running job.
Command Line Tools and Configuration Files
The command line tools provided such as
jet and the configuration XML
files are backwards-compatible between MINOR versions. This means that
when upgrading a cluster to a new minor version, the XML configuration
for the previous version can be used without any modification.
Jet currently provides metrics to Management Center and also through other means such as JMX. The metrics names may change between MINOR versions but not between PATCH versions.