{
  "schemaVersion": "0.1",
  "errorPolicy": "allOrNothing",
  "revisionMessage": "Initial repo-derived architecture: clients, edge, API, services, data, async, observability, external",
  "ops": [
    {
      "op": "createFrame",
      "id": "clients",
      "title": "Clients",
      "containerType": "generic",
      "children": [
        "web",
        "mobile",
        "api_consumer"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 40,
        "y": 30,
        "width": 1080,
        "height": 170
      }
    },
    {
      "op": "createFrame",
      "id": "edge",
      "title": "Edge",
      "containerType": "generic",
      "children": [
        "cdn",
        "waf"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 40,
        "y": 220,
        "width": 1080,
        "height": 170
      }
    },
    {
      "op": "createFrame",
      "id": "api",
      "title": "API Layer",
      "containerType": "generic",
      "children": [
        "gateway",
        "auth"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 40,
        "y": 410,
        "width": 1080,
        "height": 170
      }
    },
    {
      "op": "createFrame",
      "id": "services",
      "title": "Services",
      "containerType": "generic",
      "children": [
        "users",
        "catalog",
        "orders",
        "payments",
        "notifs"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 40,
        "y": 600,
        "width": 1080,
        "height": 170
      }
    },
    {
      "op": "createFrame",
      "id": "async",
      "title": "Async",
      "containerType": "generic",
      "children": [
        "event_bus",
        "workers",
        "scheduler"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 40,
        "y": 790,
        "width": 1080,
        "height": 170
      }
    },
    {
      "op": "createFrame",
      "id": "data",
      "title": "Data Plane",
      "containerType": "generic",
      "children": [
        "postgres",
        "redis",
        "search",
        "storage"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 40,
        "y": 980,
        "width": 1080,
        "height": 170
      }
    },
    {
      "op": "createFrame",
      "id": "observability",
      "title": "Observability",
      "containerType": "generic",
      "children": [
        "logs",
        "metrics",
        "tracing"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 1160,
        "y": 30,
        "width": 220,
        "height": 550
      }
    },
    {
      "op": "createFrame",
      "id": "external",
      "title": "External",
      "containerType": "generic",
      "children": [
        "stripe",
        "sendgrid"
      ],
      "style": {
        "fill": "rgba(255, 255, 255, 0.5)",
        "dash": [
          4,
          4
        ],
        "cornerRadius": 8
      },
      "layout": {
        "mode": "absolute",
        "x": 1160,
        "y": 600,
        "width": 220,
        "height": 540
      }
    },
    {
      "op": "createNode",
      "id": "web",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Web App",
      "icon": "lucide:monitor",
      "layout": {
        "mode": "absolute",
        "x": 230,
        "y": 75,
        "width": 180,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "mobile",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Mobile App",
      "icon": "lucide:smartphone",
      "layout": {
        "mode": "absolute",
        "x": 490,
        "y": 75,
        "width": 180,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "api_consumer",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Public API",
      "icon": "lucide:code",
      "layout": {
        "mode": "absolute",
        "x": 750,
        "y": 75,
        "width": 180,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "cdn",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "CDN",
      "icon": "lucide:globe",
      "layout": {
        "mode": "absolute",
        "x": 330,
        "y": 265,
        "width": 200,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "waf",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "WAF",
      "icon": "lucide:shield",
      "layout": {
        "mode": "absolute",
        "x": 630,
        "y": 265,
        "width": 200,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "gateway",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "API Gateway",
      "icon": "lucide:network",
      "layout": {
        "mode": "absolute",
        "x": 330,
        "y": 455,
        "width": 200,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "auth",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Auth Service",
      "icon": "lucide:lock",
      "layout": {
        "mode": "absolute",
        "x": 630,
        "y": 455,
        "width": 200,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "users",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Users",
      "icon": "lucide:users",
      "layout": {
        "mode": "absolute",
        "x": 110,
        "y": 645,
        "width": 140,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "catalog",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Catalog",
      "icon": "lucide:boxes",
      "layout": {
        "mode": "absolute",
        "x": 310,
        "y": 645,
        "width": 140,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "orders",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Orders",
      "icon": "lucide:package",
      "layout": {
        "mode": "absolute",
        "x": 510,
        "y": 645,
        "width": 140,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "payments",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Payments",
      "icon": "lucide:layers",
      "layout": {
        "mode": "absolute",
        "x": 710,
        "y": 645,
        "width": 140,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "notifs",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Notifications",
      "icon": "lucide:bell",
      "layout": {
        "mode": "absolute",
        "x": 910,
        "y": 645,
        "width": 140,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "event_bus",
      "nodeType": "queue",
      "shape": "roundedRect",
      "label": "Event Bus",
      "icon": "lucide:zap",
      "layout": {
        "mode": "absolute",
        "x": 230,
        "y": 835,
        "width": 180,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "workers",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Workers",
      "icon": "lucide:cpu",
      "layout": {
        "mode": "absolute",
        "x": 490,
        "y": 835,
        "width": 180,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "scheduler",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Scheduler",
      "icon": "lucide:clock",
      "layout": {
        "mode": "absolute",
        "x": 750,
        "y": 835,
        "width": 180,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "postgres",
      "nodeType": "database",
      "shape": "cylinder",
      "label": "PostgreSQL",
      "icon": "lucide:database",
      "layout": {
        "mode": "absolute",
        "x": 170,
        "y": 1010,
        "width": 160,
        "height": 130
      }
    },
    {
      "op": "createNode",
      "id": "redis",
      "nodeType": "database",
      "shape": "cylinder",
      "label": "Redis",
      "icon": "lucide:database",
      "layout": {
        "mode": "absolute",
        "x": 390,
        "y": 1010,
        "width": 160,
        "height": 130
      }
    },
    {
      "op": "createNode",
      "id": "search",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Search Index",
      "icon": "lucide:search",
      "layout": {
        "mode": "absolute",
        "x": 610,
        "y": 1025,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "storage",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Object Storage",
      "icon": "lucide:hard-drive",
      "layout": {
        "mode": "absolute",
        "x": 830,
        "y": 1025,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "logs",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Logs",
      "icon": "lucide:terminal",
      "layout": {
        "mode": "absolute",
        "x": 1190,
        "y": 90,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "metrics",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Metrics",
      "icon": "lucide:bar-chart",
      "layout": {
        "mode": "absolute",
        "x": 1190,
        "y": 240,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "tracing",
      "nodeType": "service",
      "shape": "roundedRect",
      "label": "Tracing",
      "icon": "lucide:activity",
      "layout": {
        "mode": "absolute",
        "x": 1190,
        "y": 390,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "stripe",
      "nodeType": "externalSystem",
      "shape": "roundedRect",
      "label": "Payment\nProvider",
      "icon": "lucide:external-link",
      "layout": {
        "mode": "absolute",
        "x": 1190,
        "y": 700,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createNode",
      "id": "sendgrid",
      "nodeType": "externalSystem",
      "shape": "roundedRect",
      "label": "Email\nProvider",
      "icon": "lucide:mail",
      "layout": {
        "mode": "absolute",
        "x": 1190,
        "y": 880,
        "width": 160,
        "height": 110
      }
    },
    {
      "op": "createEdge",
      "id": "e_web_cdn",
      "from": {
        "elementId": "web"
      },
      "to": {
        "elementId": "cdn"
      },
      "label": "HTTPS",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_mob_cdn",
      "from": {
        "elementId": "mobile"
      },
      "to": {
        "elementId": "cdn"
      },
      "label": "HTTPS",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_api_cdn",
      "from": {
        "elementId": "api_consumer"
      },
      "to": {
        "elementId": "cdn"
      },
      "label": "HTTPS",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_cdn_waf",
      "from": {
        "elementId": "cdn"
      },
      "to": {
        "elementId": "waf"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_waf_gw",
      "from": {
        "elementId": "waf"
      },
      "to": {
        "elementId": "gateway"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_gw_auth",
      "from": {
        "elementId": "gateway"
      },
      "to": {
        "elementId": "auth"
      },
      "label": "validates",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_gw_users",
      "from": {
        "elementId": "gateway"
      },
      "to": {
        "elementId": "users"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_gw_catalog",
      "from": {
        "elementId": "gateway"
      },
      "to": {
        "elementId": "catalog"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_gw_orders",
      "from": {
        "elementId": "gateway"
      },
      "to": {
        "elementId": "orders"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_orders_payments",
      "from": {
        "elementId": "orders"
      },
      "to": {
        "elementId": "payments"
      },
      "label": "triggers",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_users_db",
      "from": {
        "elementId": "users"
      },
      "to": {
        "elementId": "postgres"
      },
      "label": "queries",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_catalog_search",
      "from": {
        "elementId": "catalog"
      },
      "to": {
        "elementId": "search"
      },
      "label": "indexes",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_orders_db",
      "from": {
        "elementId": "orders"
      },
      "to": {
        "elementId": "postgres"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_orders_redis",
      "from": {
        "elementId": "orders"
      },
      "to": {
        "elementId": "redis"
      },
      "label": "cache",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_orders_evt",
      "from": {
        "elementId": "orders"
      },
      "to": {
        "elementId": "event_bus"
      },
      "label": "publishes",
      "router": "orthogonal",
      "style": {
        "dash": [
          4,
          4
        ]
      }
    },
    {
      "op": "createEdge",
      "id": "e_evt_workers",
      "from": {
        "elementId": "event_bus"
      },
      "to": {
        "elementId": "workers"
      },
      "label": "consumes",
      "router": "orthogonal",
      "style": {
        "dash": [
          4,
          4
        ]
      }
    },
    {
      "op": "createEdge",
      "id": "e_sched_workers",
      "from": {
        "elementId": "scheduler"
      },
      "to": {
        "elementId": "workers"
      },
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_workers_notifs",
      "from": {
        "elementId": "workers"
      },
      "to": {
        "elementId": "notifs"
      },
      "label": "triggers",
      "router": "orthogonal",
      "style": {
        "dash": [
          4,
          4
        ]
      }
    },
    {
      "op": "createEdge",
      "id": "e_workers_storage",
      "from": {
        "elementId": "workers"
      },
      "to": {
        "elementId": "storage"
      },
      "label": "writes",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_payments_stripe",
      "from": {
        "elementId": "payments"
      },
      "to": {
        "elementId": "stripe"
      },
      "label": "charges",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_notifs_sendgrid",
      "from": {
        "elementId": "notifs"
      },
      "to": {
        "elementId": "sendgrid"
      },
      "label": "emails",
      "router": "orthogonal"
    },
    {
      "op": "createEdge",
      "id": "e_services_obs",
      "from": {
        "elementId": "services"
      },
      "to": {
        "elementId": "observability"
      },
      "label": "telemetry",
      "router": "orthogonal"
    }
  ]
}
