schemaVersion: "1"
type: "design"
id: "new-design"
nodes:
  - id: "web-browser"
    component: "web-browser"
    group: "system"
  - id: "mobile-app"
    component: "mobile-app"
    group: "system"
  - id: "cloudflare-cdn"
    component: "cloudflare-cdn"
  - id: "azure-load-balancer"
    component: "azure-load-balancer"
  - id: "web-servers"
    component: "azure-vm-scale-set"
    label: "Web Servers"
    group: "system-2"
  - id: "azure-queue-storage"
    component: "azure-queue-storage"
    group: "system-2"
  - id: "database"
    component: "azure-sql"
    label: "Databases"
    group: "system-2"
  - id: "caches"
    component: "azure-cache-for-redis"
    label: "Caches"
    group: "system-2"
  - id: "web-servers-2"
    component: "azure-vm-scale-set"
    label: "Workers"
    group: "system-2"
  - id: "nosql"
    component: "azure-documentdb"
    label: "NoSQL"
  - id: "web-servers-3"
    component: "azure-vm-scale-set"
    label: "Web Servers"
    group: "system-3"
  - id: "azure-queue-storage-2"
    component: "azure-queue-storage"
    group: "system-3"
  - id: "database-2"
    component: "azure-sql"
    label: "Databases"
    group: "system-3"
  - id: "caches-2"
    component: "azure-cache-for-redis"
    label: "Caches"
    group: "system-3"
  - id: "web-servers-4"
    component: "azure-vm-scale-set"
    label: "Workers"
    group: "system-3"
edges:
  - from: "web-browser"
    to: "cloudflare-cdn"
    protocol: "http"
    mode: "sync"
  - from: "mobile-app"
    to: "cloudflare-cdn"
    protocol: "http"
    mode: "sync"
  - from: "web-servers"
    to: "azure-queue-storage"
    protocol: "http"
    mode: "sync"
  - from: "cloudflare-cdn"
    to: "azure-load-balancer"
    protocol: "http"
    mode: "sync"
  - from: "azure-load-balancer"
    to: "web-servers"
    protocol: "http"
    mode: "sync"
  - from: "web-servers"
    to: "database"
    protocol: "http"
    mode: "sync"
  - from: "web-servers"
    to: "caches"
    protocol: "http"
    mode: "sync"
  - from: "web-servers-2"
    to: "azure-queue-storage"
    protocol: "http"
    mode: "sync"
  - from: "web-servers-3"
    to: "azure-queue-storage-2"
    protocol: "http"
    mode: "sync"
  - from: "web-servers-3"
    to: "database-2"
    protocol: "http"
    mode: "sync"
  - from: "web-servers-3"
    to: "caches-2"
    protocol: "http"
    mode: "sync"
  - from: "web-servers-4"
    to: "azure-queue-storage-2"
    protocol: "http"
    mode: "sync"
  - from: "web-servers-3"
    to: "nosql"
    protocol: "http"
    mode: "sync"
  - from: "web-servers"
    to: "nosql"
    protocol: "http"
    mode: "sync"
  - from: "azure-load-balancer"
    to: "web-servers-3"
    protocol: "http"
    mode: "sync"
groups:
  - id: "system"
    kind: "system"
    label: "User"
  - id: "system-2"
    kind: "system"
    label: "DC...N"
  - id: "system-3"
    kind: "system"
    label: "DC1"
