{
  "schema": "vedokrok.public-item.v1",
  "release_id": "MHC-RPUB-20260920-75ad787a",
  "url": "/knowledge/test-the-rollback-before-you-need-it",
  "id": "MHC-D-RESEARCH-0346",
  "version": "0.1.0",
  "title": "Test the rollback before you need it",
  "summary": "A rollback plan that exists only on paper is a hypothesis.",
  "kind": "protocol",
  "body": "Exercise the rollback in a safe environment using the same artifacts, permissions and sequence intended for production. Verify that the old version or state actually returns, dependencies remain compatible and operators know what cannot be reversed. Record the measured recovery time and any manual step that still depends on memory.",
  "limits": [
    "A rehearsal cannot reproduce every live dependency; data migrations and external side effects may require a different recovery design."
  ],
  "topics": [
    "union-safe-change-operations"
  ],
  "intents": [],
  "source_ids": [
    "RS-0B17D9040762A762"
  ],
  "evidence": [
    {
      "claim": "AWS recommends validating rollback procedures before live deployment rather than discovering the recovery path during failure.",
      "source_id": "RS-0B17D9040762A762",
      "role": "supports",
      "note": "A nonproduction rollback test may not reproduce every production dependency or data state.",
      "locator": "Documented and tested recovery plan"
    }
  ],
  "use_when": [
    "A release plan says 'rollback available' but nobody has recently executed the recovery path."
  ],
  "avoid_when": [
    "A rehearsal cannot reproduce every live dependency; data migrations and external side effects may require a different recovery design."
  ],
  "example": "Before a high-risk configuration rollout, deploy the new version in staging, roll it back using the production runbook and verify the old behavior.",
  "check": "Someone can demonstrate the recovery path and its limitations with evidence from a recent rehearsal.",
  "steps": [
    "Execute the documented rollback with production-like artifacts and permissions.",
    "Verify the known-good state after rollback, not only that the command completed.",
    "Record irreversible parts and required fix-forward steps.",
    "Update the runbook when the rehearsal exposes missing access, timing or dependency assumptions."
  ],
  "sources": [
    {
      "id": "RS-0B17D9040762A762",
      "title": "OPS06-BP01 Plan for unsuccessful changes",
      "url": "https://docs.aws.amazon.com/wellarchitected/latest/framework/ops_mit_deploy_risks_plan_for_unsucessful_changes.html"
    }
  ],
  "relations": [
    {
      "from": "MHC-D-RESEARCH-0346",
      "to": "MHC-D-RESEARCH-0345",
      "type": "useful_with",
      "url": "/knowledge/write-the-rollback-trigger-before-deployment"
    }
  ],
  "collections": [
    {
      "id": "RC-4F77BDBBF2481574",
      "title": "Change live systems without turning one mistake into a large one",
      "url": "/collections/change-live-systems-without-turning-one-mistake-into-a-large-one"
    }
  ]
}
