{
  "docVersion": 1,
  "id": "blog-dr-t1",
  "name": "Tier 1 — Backup & Restore (active-passive, cold)",
  "purpose": "Azure Backup ships snapshots to geo-redundant storage. On regional loss you redeploy the stack from IaC into the paired region and restore.",
  "nodes": {
    "app": {
      "type": "k8s",
      "label": "App Service",
      "x": 40,
      "y": 60,
      "w": 138,
      "h": 84,
      "color": "green",
      "runtime": "primary · region A"
    },
    "db": {
      "type": "database",
      "label": "Azure SQL DB",
      "x": 40,
      "y": 220,
      "w": 138,
      "h": 84,
      "color": "green",
      "runtime": "primary · region A"
    },
    "bak": {
      "type": "storage",
      "label": "Azure Backup",
      "x": 340,
      "y": 140,
      "w": 138,
      "h": 84,
      "color": "amber",
      "runtime": "GRS vault"
    },
    "iac": {
      "type": "iac",
      "label": "IaC template",
      "x": 700,
      "y": 40,
      "w": 138,
      "h": 84,
      "runtime": "Bicep / ARM · in git"
    },
    "napp": {
      "type": "k8s",
      "label": "App Service",
      "x": 700,
      "y": 200,
      "w": 138,
      "h": 84,
      "style": "dashed",
      "runtime": "region B · redeploy"
    },
    "ndb": {
      "type": "database",
      "label": "Azure SQL DB",
      "x": 700,
      "y": 360,
      "w": 138,
      "h": 84,
      "style": "dashed",
      "runtime": "region B · restore"
    }
  },
  "edges": {
    "e1": {
      "from": "app",
      "to": "bak",
      "fromSide": "right",
      "toSide": "left",
      "label": "backup",
      "style": "dashed"
    },
    "e2": {
      "from": "db",
      "to": "bak",
      "fromSide": "right",
      "toSide": "left",
      "label": "nightly snapshot",
      "style": "dashed"
    },
    "e3": {
      "from": "iac",
      "to": "napp",
      "fromSide": "bottom",
      "toSide": "top",
      "label": "deploy on disaster",
      "color": "amber",
      "style": "dashed"
    },
    "e4": {
      "from": "bak",
      "to": "ndb",
      "fromSide": "right",
      "toSide": "left",
      "label": "restore",
      "color": "amber",
      "style": "dashed"
    }
  },
  "boxes": {
    "z1": {
      "x": 10,
      "y": -20,
      "w": 500,
      "h": 340,
      "label": "region A — primary",
      "color": "green",
      "opacity": 0.04
    },
    "z2": {
      "x": 670,
      "y": -20,
      "w": 200,
      "h": 460,
      "label": "region B — built on disaster",
      "color": "gray",
      "opacity": 0.04
    }
  },
  "texts": {
    "t1": {
      "x": 10,
      "y": 430,
      "text": "RTO: hours–days (build + restore from nothing)  ·  RPO: your backup interval (up to a full day)\ncheapest — you pay only for stored bytes. Azure service: Azure Backup (geo-redundant vault) + IaC redeploy.",
      "color": "gray",
      "size": 12
    }
  },
  "meta": {
    "createdAt": "2026-07-20T09:00:00.000Z",
    "modifiedAt": "2026-07-20T09:00:00.000Z"
  }
}