Society · Protocols

Rollout

Progressive deployment with canary gating and recorded compensation

Definition

Mechanism

Creates a durable RolloutManifest before enabling the EjectionSeat or dispatching work, then executes the approved `operation_sequence` in an ExecutionManifest as state-changing Acts inside a CircuitBreaker envelope. Before dispatching any canary or forward state-changing action, Rollout creates a `prepared` manifest entry containing a discoverable idempotent inverse for Compensate that is safe to invoke when the forward outcome is unknown. The entry becomes `armed` before the action is sent, and its `outcome: unknown` is replaced only when an outcome is observed. If no safe inverse can be prepared, Rollout refuses that action and enters the same terminal cleanup path as a breaker trip. Rollout first runs a bounded real-path Canary. `proceed` is the sole authorization for full execution or commitment of canary progress. On `caution` or `abort`, unless preempted by EjectionSeat, Rollout invokes Break, invokes Compensate for every armed canary entry whose outcome is effectful or `unknown`, records the result, permits only DESTROY or RECYCLE, freezes the manifest, and terminates this run; retry requires a new Rollout. An inverse-preparation failure or breaker trip, unless preempted by EjectionSeat, invokes Break, stops forward execution, invokes Compensate for every armed entry whose outcome is effectful or `unknown`, records every per-inverse result, freezes the manifest, and terminates this run; neither breaker recovery nor retry resumes it, and either requires a new Rollout. A received EjectionSeat signal always takes precedence over all cleanup paths: PAUSE suspends forward and compensation work and leaves the manifest open; TERMINATE stops new forward work, invokes Break, permits best-effort Compensate during graceful shutdown without allowing acknowledgement or cleanup to block termination, and then freezes the manifest; EMERGENCY halts immediately with no compensation and no final-write guarantee, so only an incomplete immutable prefix with no guaranteed final outcome entry is available. Outside EMERGENCY, Rollout freezes the manifest when the run terminates.

Preconditions

  1. ExecutionManifest is approved
  2. CircuitBreaker is configured for the operation target and CLOSED
  3. Canary telemetry collection is active for the bounded path
  4. EjectionSeat readiness has a recorded successful test and its dedicated channel, operator key, and operator are available

Postconditions

  1. If the run terminates without EMERGENCY, the RolloutManifest is frozen with each armed action and its observed or `unknown` outcome.
  2. If EMERGENCY occurs, immediate halt is the only guaranteed outcome; the durable RolloutManifest may contain only an incomplete immutable prefix with no guaranteed final outcome entry.

Invariants

  1. No state-changing Act is attempted before the RolloutManifest records its discoverable idempotent inverse, safe under an `unknown` outcome; otherwise it is refused as an inverse-preparation failure.
  2. `proceed` alone authorizes full execution or committed Canary progress.
  3. `caution`, `abort`, inverse-preparation failure, or a CircuitBreaker trip starts no further forward work and, absent EjectionSeat preemption, enters ordinary terminal cleanup.
  4. Ordinary terminal cleanup invokes Break, then Compensate for every effectful-or-`unknown` armed entry, records each inverse result, and terminates with the manifest frozen.
  5. A terminated Rollout never resumes; retry and breaker recovery use a new Rollout.
  6. A received EjectionSeat signal preempts ordinary cleanup in favor of its selected mode.
  7. PAUSE suspends forward and compensation work and leaves the Rollout and its manifest open.
  8. TERMINATE starts no further forward work, invokes Break, and permits best-effort Compensate; Break acknowledgement and cleanup cannot block termination with a frozen manifest.
  9. EMERGENCY halts immediately without cleanup or a final manifest write.
  10. Outside EMERGENCY, the RolloutManifest records every armed action, compensation action, and observed inverse result; at freeze, each forward entry contains its observed outcome or `unknown` if unobserved.

Risks

Failure modes

  1. Canary false positive

    The bounded real path returns `proceed`, but full execution encounters conditions the canary did not cover.

  2. Dirty compensation

    One or more recorded inverse actions fails, leaving partial state; the failure remains in the RolloutManifest.

  3. Forward execution drift

    An attempted forward action does not match the next authorized action in the approved ExecutionManifest operation sequence.

  4. Audit drift

    An armed canary or forward action, or any compensation action, is absent from the RolloutManifest.

  5. Emergency residue

    EjectionSeat EMERGENCY mode halts without cleanup, so effects from already attempted actions can remain.

Relationships

Builds on

Accepts

Composes with

Infrastructure

Break

Failure-announcement signal {severity, reason, recoverable}, ACK-required

Canary

Expendable agent tests the full coordination path before real commit

Infrastructure

CircuitBreaker

Fail-fast protection against cascading failures

Infrastructure

Compensate

Structured rollback via logged inverses in LIFO order

References

Infrastructure

Act

Root primitive for state modification

Yields

Used by

Composes with

Reference

Signature

  • Act(ExecutionManifest)

Identity

Ref
Rollout#ea8c
Sema ID
sema:Rollout#mh:SHA-256:ea8c8bdf3303e53d240d6393a776de33ff7c0980a269539d6eb22a8b35e430b4
Ring
1
Tier
1
Updated
2026-11-11
Supersedes
  • sema:Rollout#mh:SHA-256:42389087ff9ffd73d3de5c71f8509cf2cd974795babc71e862ec139c92ad5c78
  • sema:Rollout#mh:SHA-256:54d7bac8171164fb66054c97570c030967e0d5f568763a69a103eec26ac0aeeb
  • sema:Rollout#mh:SHA-256:8fc16ddf8f7add799ac8b49f7894f508be0b8378f995e57540cab8ec028eb996
  • sema:Rollout#mh:SHA-256:e4717541319b2a51a4b78b1278fc14a1b3fd4f6daf6719eb70c08c7193dfb629