Rotations and upgrades
audience: operators
Rotation discipline at the coalition layer is thin: most
rotations occur inside one member (a lattice or a
standalone organism) or inside a composite organism or
module. The coalition operator’s task is to republish
the CoalitionConfig when any referenced component
changes identity in a way that folds into
COALITION_ROOT. This page lists the rotations that
materially affect a coalition and the operation order for
each.
For rotations inside a block-building lattice organism, follow the builder rotations page. For rotations inside a standalone organism, follow that organism’s own runbook.
Rotations that change a coalition’s fingerprint
Any of the following forces a new CoalitionConfig
fingerprint. Publication is not optional: integrators
compiled against the old fingerprint see ConnectTimeout
on every handle until they recompile against the new
one.
- A referenced lattice’s stable id changes (retirement).
- A referenced organism’s stable id changes (retirement of a standalone or composite organism).
- A referenced composite organism’s
OrganismConfigfingerprint changes and the coalition pinned the content hash (content, ACL, span, or TDX Measurements bump on a TDX-gated organism). - A module’s
ModuleConfigfingerprint changes (content, ACL, or TDX Measurements bump). - The coalition’s lattice set changes (add or remove a lattice).
- The coalition’s organism set changes (add or remove a standalone or composite organism).
- The coalition’s module set changes (add or remove a module).
- The coalition’s ticket issuer is added, rotated, or removed.
- The coalition instance name changes (rare — effectively a retirement; see below).
Rotations that do not change a coalition’s fingerprint
- Committee member rotations inside a referenced member,
under a stable per-member
Config. - Committee member rotations inside a composite organism
or module, under a stable
OrganismConfig/ModuleConfig. - TDX Measurements republications that match the previously pinned value (i.e. the image was rebuilt from the same source).
- Per-member content-hash bumps (TDX Measurements rotations, ACL rotations) if organisms pin only the stable id, not the content hash. Organisms that pinned content hash do bump.
These are invisible to integrators at the coalition layer. Documented per-member or per-organism, not per- coalition.
Ordering a member retirement
When a referenced member’s stable id changes, follow this sequence.
- Receive the retirement notification from the per- member operator via the multi-operator coalition change channel. The notification includes the old and new stable ids and the cutover time.
- Prepare the new
CoalitionConfig. Update the member’s reference in theCoalitionConfigdefinition. Re-derive the coalition fingerprint. Modules re-derive automatically becauseCOALITION_ROOThas changed. Commissioned organisms referenced by the coalition re-derive only if they themselves span the retired member. - Redeploy modules under the new
OrganismConfigs. Because each module’s content folds the coalition root, module fingerprints have bumped. Bring up new committee members on the newOrganismConfigs while old members continue on the old ones; rotate over. - Publish the new
CoalitionConfigfingerprint on the handshake page and change channel. - Wait for integrators to recompile. Old-
fingerprint handles time out (or, better, see a
RetirementMarkerfrom each retiring committee pointing at the replacement); integrators reach out if they miss the change. - Retire the old module deployments once the old
CoalitionConfigis no longer in use by the integrators the operator cares about. Each committee emits a terminalRetirementMarkerbefore shutdown.
Ordering a composite-organism or module upgrade
A composite organism or module’s Config may change for
reasons other than upstream member retirements: new
content parameters, TDX Measurements bump, ACL change.
- Stand up the new deployment under the new
OrganismConfig/ModuleConfigalongside the old. - Update any referencing coalitions’
CoalitionConfigs to reference the new fingerprint. Recompute each coalition fingerprint. - Publish each new
CoalitionConfig. - Announce the change via the change channel, with migration notes. If any referencing coalition ships a Chronicle, its next commit records the rotation.
- Retire the old deployment. The committee emits a
RetirementMarkerpointing at the new deployment so integrators rebind cleanly.
A transition window where old and new coexist is required; a hard cutover leaves every integrator timing out simultaneously.
Retiring a coalition
A coalition may be retired (renamed). Reasons:
- The composition has drifted far enough from the original intent that a clean break is preferable to incremental bumps.
- The set of operators participating in the coalition has reorganised.
- Branding or regulatory considerations.
Sequence:
- Announce retirement with substantial lead time. Integrators relying on the coalition need weeks to migrate. A shipped Chronicle records the retirement in its next commit.
- Stand up the replacement coalition (e.g.
ethereum.superchain-v2026q2) with a freshCoalitionConfigfingerprint and the desired composition. - Run both coalitions in parallel until most integrator traffic has migrated.
- Retire the old coalition’s modules (committees
emit
RetirementMarkers pointing at the replacement coalition’s modules) once integrator traffic drops to zero or acceptable levels. Referenced organisms are independent of the retired coalition and continue if other coalitions or direct integrators still use them. - Publish a retirement note. The old
CoalitionConfigfingerprint is formally deprecated; integrators still on it seeConnectTimeoutonce the old modules are down.
Do not reuse an instance name for a different composition. A retired coalition’s name is spent; reissuing it under a new composition would produce silent mis-bindings across the integrator base.