Skip to main content

Separate software rollback from data recovery

What This Concept Is​

Rollback changes a software version. Recovery restores a usable service and valid data. These overlap only when old software remains compatible with data and external effects produced during the release.

Why It Matters Here​

The release lab must test the return path before a production-style claim.

Concrete Example​

A new writer stores an enum value the old reader rejects. Rolling the image back restores old code but causes read failures. An expand/contract sequence can keep both readers compatible during the rollout window; contraction occurs only after old consumers and rollback needs are resolved. External payments cannot be undone by changing an image.

Common Confusion / Misconception​

A successful rollback command is not a verified recovery. Backup restore can discard later valid writes, so it requires an explicit data-loss decision and reconciliation.

How To Use It​

Document reader/writer compatibility, migration order, stop conditions and effects that need compensation. Test old and new readers against records written by each version. Verify user paths and data after abort.

Check Yourself​

Which writes survive rollback? What is the compatibility window? Which effects require business compensation?

Mini Drill or Application​

Add a versioned record to the original canary exercise and intentionally introduce an incompatible reader. Repair the migration plan and show the rollback test now passes.

Read This Only If Stuck​

Building Secure and Reliable Systems provides selective operational reasoning. Use the module sources below for current tool behavior; do not read a whole book before attempting the exercise.

SLSA v1.2 verification; Google SRE canarying; DORA metric definitions.