Expand description
The lifecycle contract: the release a cluster starts on, the transitions it goes through under load, and whether it may be rolled back to that release.
A lifecycle contract is a soak contract whose fault plan holds lifecycle
transitions as well as faults: roll restarts one broker from another
release’s image, certificate_rotation swaps one broker’s TLS keystore and
truststore, and reassignment moves one replica of every partition of a
path onto another broker. The executor measures each one’s disruption as it
measures a fault’s, and after each one writes a Checkpoint: the image
every broker runs, the finalized feature levels, whether a rollback to the
source release is still supported, and a reconciliation of the records,
the committed offsets and the topic configuration as they stand.
The source release is declared by digest, with the feature ranges it
supports. The target is the candidate the run is given, so it is not
declared. rollback derives whether a cluster may roll back to the
source from the levels it has finalized, by the rule of
docs/persisted_formats.md: a 1.x broker writes a new format only once its
feature level is finalized, so a cluster that finalized nothing above what
the source supports holds nothing the source cannot read.
Structs§
- Checkpoint
- The cluster as it stood after one lifecycle transition.
- Checkpoint
Read - One path’s records at a checkpoint.
- Level
Range - The levels of one feature that a release supports, inclusive.
- Lifecycle
- The
lifecyclesection of a contract. - Release
- A published release, by image digest.
Enums§
- Rollback
- Whether a cluster may roll back to the source release.
- Side
- Which release a
rollrestarts a broker from.
Functions§
- checkpoint_
findings - The acknowledged records of
readthat its reader did not find. - is_
transition - Whether
kindis a lifecycle transition, which leaves a checkpoint. - judge_
lifecycle - Every lifecycle failure of
evidence: the checks a lifecycle contract adds to the soak verdict, one line each. - rollback
- Whether a cluster that finalized
finalizedmay roll back tosource.