chartlet 0.12.2

Compile structured data into deterministic, accessible static charts
Documentation
{
  "schemaVersion": 1,
  "type": "architecture",
  "title": "Web shop on one cloud region",
  "source": "Architecture handbook, overview",
  "width": 1820,
  "height": 540,
  "architecture": {
    "boundaries": [
      { "id": "region", "label": "Cloud region eu-central-1" },
      { "id": "network", "label": "Private network", "in": "region" },
      { "id": "data", "label": "Data zone", "in": "network" }
    ],
    "components": [
      { "id": "customer", "label": "Customer", "kind": "person" },
      { "id": "web", "label": "Web shop", "sublabel": "browser", "kind": "frontend" },
      { "id": "cdn", "label": "Content network", "kind": "external" },
      { "id": "api", "label": "Shop API", "sublabel": "Node.js", "in": "network" },
      { "id": "cache", "label": "Session cache", "sublabel": "Redis", "kind": "cache", "in": "network" },
      { "id": "events", "label": "Order events", "kind": "queue", "in": "network" },
      { "id": "worker", "label": "Order worker", "in": "network" },
      { "id": "db", "label": "Orders", "sublabel": "Postgres", "kind": "database", "in": "data" },
      { "id": "files", "label": "Invoices", "sublabel": "object storage", "kind": "storage", "in": "region" },
      { "id": "pay", "label": "Payment provider", "kind": "external" },
      { "id": "auth", "label": "Sign-in", "sublabel": "identity provider", "kind": "security", "in": "network" }
    ],
    "connections": [
      { "from": "customer", "to": "web", "label": "browses" },
      { "from": "web", "to": "cdn", "label": "loads assets", "technology": "HTTPS", "dash": "dashed" },
      { "from": "web", "to": "api", "label": "calls", "technology": "HTTPS/JSON" },
      { "from": "api", "to": "cache", "label": "sessions", "technology": "RESP" },
      { "from": "api", "to": "auth", "label": "checks token", "technology": "OIDC" },
      { "from": "api", "to": "db", "label": "reads, writes", "technology": "SQL/TLS" },
      { "from": "api", "to": "events", "label": "publishes", "technology": "AMQP" },
      { "from": "events", "to": "worker", "label": "delivers" },
      { "from": "worker", "to": "pay", "label": "charges", "technology": "HTTPS" },
      { "from": "worker", "to": "files", "label": "stores PDF", "technology": "S3 API" },
      { "from": "worker", "to": "db", "label": "updates", "technology": "SQL/TLS" }
    ],
    "mainPath": ["customer", "web", "api", "events", "worker", "pay"]
  }
}