Skip to main content

Module lifecycle

Module lifecycle 

Source
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.
CheckpointRead
One path’s records at a checkpoint.
LevelRange
The levels of one feature that a release supports, inclusive.
Lifecycle
The lifecycle section 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 roll restarts a broker from.

Functions§

checkpoint_findings
The acknowledged records of read that its reader did not find.
is_transition
Whether kind is 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 finalized may roll back to source.