{
  "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 (Migration)",
      "children": {
        "api": {
          "kind": "service",
          "title": "Shop API",
          "technology": "Go",
          "status": "implementation"
        },
        "authservice": {
          "kind": "service",
          "title": "Auth Service",
          "technology": "Go",
          "status": "deployed"
        },
        "db": {
          "kind": "database",
          "title": "PostgreSQL",
          "technology": "PostgreSQL",
          "status": "deployed"
        }
      }
    }
  },
  "relationships": [
    {
      "from": "customer",
      "to": "shop",
      "label": "kauft ein",
      "kind": "uses"
    },
    {
      "from": "shop.api",
      "to": "shop.authservice",
      "label": "authenticate",
      "kind": "uses"
    }
  ],
  "views": {
    "containers": {
      "title": "Shop Intern (aktuell)",
      "scope": "shop",
      "include": [
        "shop.*"
      ]
    },
    "context": {
      "title": "Context (Migrationsphase)",
      "include": [
        "customer",
        "shop"
      ]
    }
  },
  "asIs": {
    "elements": {
      "monolith": {
        "kind": "system",
        "title": "Shop Monolith",
        "technology": "Java/Spring"
      },
      "mysql": {
        "kind": "database",
        "title": "MySQL",
        "technology": "MySQL"
      }
    },
    "relationships": [
      {
        "from": "monolith",
        "to": "mysql",
        "label": "reads/writes"
      }
    ]
  },
  "toBe": {
    "elements": {
      "authsvc": {
        "kind": "service",
        "title": "Auth Service",
        "technology": "Go"
      },
      "paymentsvc": {
        "kind": "service",
        "title": "Payment Service",
        "technology": "Rust"
      },
      "postgres": {
        "kind": "database",
        "title": "PostgreSQL",
        "technology": "PostgreSQL"
      },
      "shopapi": {
        "kind": "service",
        "title": "Shop API",
        "technology": "Go"
      }
    },
    "relationships": [
      {
        "from": "shopapi",
        "to": "authsvc",
        "label": "authenticate"
      },
      {
        "from": "shopapi",
        "to": "paymentsvc",
        "label": "charge()"
      },
      {
        "from": "shopapi",
        "to": "postgres",
        "label": "reads/writes"
      }
    ]
  }
}