Docs/Decisions/ADR-0008 Single-Revision Deploys

ADR-0008: Immutable, verified, reversible deploys

Status
accepted (principles) · superseded (hosted pipeline)
Decided
2026, for the original hosted deployment
Applies to this repository
The principles do; the hosted single-revision deploy pipeline is not part of this repository. Releases publish signed images and Helm charts to GHCR and you deploy them (see CI/CD Pipelines).

Context

The hosted deployment ran each service as a single active revision on a managed container platform. An early outage lasted about 40 minutes because no previous image existed to roll back to. The rules below came out of that.

Decision

How this maps to self-hosting

PrincipleComposeHelm
Immutable versionsPin VEGADUTA_VERSION in deploy/compose/.env--version <chart>; image tags come from the chart
Verify healthscripts/vegaduta upgrade pulls, recreates and waits for every service to be healthyRolling update with maxUnavailable: 0 (guarded); the migrate Job runs pre-upgrade and a failure rolls no pods
Roll backSet the previous VEGADUTA_VERSION and run upgrade again. Database migrations are forward-only; restore from backup if one must be undone.helm rollback (same caveat for migrations)

Evidence & references