{
  "config": {},
  "specification": {
    "elements": {
      "actor": {
        "notation": "Actor"
      },
      "database": {
        "notation": "Database"
      },
      "service": {
        "notation": "Service",
        "container": true
      },
      "system": {
        "notation": "Software System",
        "container": true
      }
    },
    "relationships": {
      "reads": {
        "notation": "reads",
        "dashed": true
      },
      "uses": {
        "notation": "uses"
      }
    }
  },
  "model": {
    "customer": {
      "kind": "actor",
      "title": "Customer"
    },
    "shop": {
      "kind": "system",
      "title": "Online Shop",
      "children": {
        "api": {
          "kind": "service",
          "title": "REST API",
          "description": "Haupteinsprung",
          "technology": "Go"
        },
        "authservice": {
          "kind": "service",
          "title": "Auth Service",
          "description": "JWT-Validierung",
          "technology": "Go"
        },
        "db": {
          "kind": "database",
          "title": "PostgreSQL",
          "description": "Primäre Datenbank",
          "technology": "PostgreSQL"
        },
        "frontend": {
          "kind": "service",
          "title": "Web Frontend",
          "description": "Single Page App",
          "technology": "React"
        },
        "paymentservice": {
          "kind": "service",
          "title": "Payment Service",
          "description": "Zahlungsabwicklung",
          "technology": "Go"
        }
      }
    }
  },
  "relationships": [
    {
      "from": "customer",
      "to": "shop",
      "label": "kauft ein",
      "kind": "uses"
    },
    {
      "from": "shop.frontend",
      "to": "shop.api",
      "label": "REST calls",
      "kind": "uses"
    },
    {
      "from": "shop.api",
      "to": "shop.authservice",
      "label": "authenticate",
      "kind": "uses"
    },
    {
      "from": "shop.api",
      "to": "shop.paymentservice",
      "label": "charge()",
      "kind": "uses"
    },
    {
      "from": "shop.api",
      "to": "shop.db",
      "label": "reads/writes",
      "kind": "uses"
    },
    {
      "from": "shop.paymentservice",
      "to": "shop.db",
      "label": "audit log",
      "kind": "uses"
    },
    {
      "from": "shop.api",
      "to": "shop.db",
      "label": "reads/writes"
    }
  ],
  "views": {
    "containers": {
      "title": "Container View",
      "scope": "shop",
      "include": [
        "shop.*"
      ]
    },
    "context": {
      "title": "System Context",
      "include": [
        "customer",
        "shop"
      ]
    }
  }
}