Operations: upgrades
Upgrades
Section titled “Upgrades”An upgrade is a binary swap plus journal replay, and it is rehearsed before it is ever needed:
./unidpp-ops rehearse-upgradeThe drill, end to end on the live stack:
- backup: the durability net goes up first;
- before-readings: the domain state (registry items, trust revocations, log tree size) and every journal’s line count;
- rebuild: every service binary rebuilds from the sibling checkouts (the swap);
- restart: the full stack stops and starts; journals replay on the new binaries;
- proof: after-readings equal before-readings, and every
journaled
.jsonlthe backup captured is a byte prefix of the live journal: the append-only proof. An upgrade that rewrote history fails the rehearsal loudly.
The report lands in backups/upgrade-<stamp>.json beside the
backups.
Upgrading for real
Section titled “Upgrading for real”The rehearsal IS the procedure, and a production upgrade differs only in where the binaries come from (a release archive, an on-prem bundle) and in announcing the maintenance window:
./unidpp-ops backup: snapshot first, always.- Swap the binaries (the on-prem bundle carries its own verified archive).
- Restart through
unidpp-stack down && unidpp-stack up. unidpp-stack status: everything healthy, public hostnames 200../unidpp-ops verify <the step-1 archive>: the net is intact.
If anything fails: journals are append-only, so the pre-upgrade state
is fully recoverable from the step-1 backup by
restore.
The event-model view
Section titled “The event-model view”Product-level upgrades (a component installed into a product) are the
UpgradeInstall event class in the core taxonomy; see the
issuer API reference. The operator-level upgrade on
this page is the platform’s own version of the same discipline:
recorded, replayable, and proven non-destructive.