{
  "docVersion": 1,
  "id": "blog-dr-t4",
  "name": "Tier 4 — Hot Standby / Active-Active",
  "purpose": "Both regions serve live traffic. Front Door load-balances by health; SQL auto-failover groups (or Cosmos multi-region writes) keep data in step. No failover event.",
  "nodes": {
    "fd": {
      "type": "gateway",
      "label": "Azure Front Door",
      "x": 380,
      "y": 20,
      "w": 138,
      "h": 84,
      "runtime": "load-balances both · health probes"
    },
    "app": {
      "type": "k8s",
      "label": "App Service",
      "x": 80,
      "y": 190,
      "w": 138,
      "h": 84,
      "color": "green",
      "runtime": "region A · LIVE"
    },
    "db": {
      "type": "database",
      "label": "Azure SQL",
      "x": 80,
      "y": 350,
      "w": 138,
      "h": 84,
      "color": "green",
      "runtime": "failover group"
    },
    "rapp": {
      "type": "k8s",
      "label": "App Service",
      "x": 700,
      "y": 190,
      "w": 138,
      "h": 84,
      "color": "green",
      "runtime": "region B · LIVE"
    },
    "rdb": {
      "type": "database",
      "label": "Azure SQL",
      "x": 700,
      "y": 350,
      "w": 138,
      "h": 84,
      "color": "green",
      "runtime": "failover group"
    }
  },
  "edges": {
    "e0": {
      "from": "fd",
      "to": "app",
      "fromSide": "left",
      "toSide": "top",
      "label": "50% traffic",
      "color": "green",
      "animated": true
    },
    "e0b": {
      "from": "fd",
      "to": "rapp",
      "fromSide": "right",
      "toSide": "top",
      "label": "50% traffic",
      "color": "green",
      "animated": true
    },
    "e1": {
      "from": "db",
      "to": "rdb",
      "fromSide": "right",
      "toSide": "left",
      "label": "auto-failover group · sync/near-sync",
      "dir": "both",
      "color": "green",
      "animated": true
    }
  },
  "boxes": {
    "z1": {
      "x": 40,
      "y": 130,
      "w": 240,
      "h": 350,
      "label": "region A — active",
      "color": "green",
      "opacity": 0.05
    },
    "z2": {
      "x": 660,
      "y": 130,
      "w": 240,
      "h": 350,
      "label": "region B — active",
      "color": "green",
      "opacity": 0.05
    }
  },
  "texts": {
    "t1": {
      "x": 40,
      "y": 500,
      "text": "RTO ~0 · RPO ~0 — the other region was already serving. highest cost, and the real cost is ENGINEERING:\nwrite conflicts, quorum/witness for the split, cross-region latency. Azure: Front Door + SQL failover groups / Cosmos multi-write.",
      "color": "gray",
      "size": 12
    }
  },
  "meta": {
    "createdAt": "2026-07-20T09:00:00.000Z",
    "modifiedAt": "2026-07-20T09:00:00.000Z"
  }
}