chartlet 0.20.0

Compile structured data into deterministic, accessible static charts
Documentation
{
  "schemaVersion": 1,
  "type": "architecture",
  "title": "Booking platform",
  "source": "Architecture handbook, booking model",
  "width": 1300,
  "height": 520,
  "architecture": {
    "boundaries": [
      { "id": "cloud", "label": "Cloud account" },
      { "id": "data", "label": "Data zone", "in": "cloud" }
    ],
    "components": [
      { "id": "guest", "label": "Guest", "kind": "person" },
      { "id": "app", "label": "Booking app", "kind": "frontend" },
      { "id": "gateway", "label": "API gateway", "in": "cloud" },
      { "id": "booking", "label": "Booking service", "sublabel": "Java", "in": "cloud" },
      { "id": "pricing", "label": "Pricing service", "sublabel": "Go", "in": "cloud" },
      { "id": "db", "label": "Bookings", "sublabel": "Postgres", "kind": "database", "in": "data" },
      { "id": "legacy", "label": "Legacy inventory", "kind": "database", "in": "data" },
      { "id": "pay", "label": "Payment provider", "kind": "external" }
    ],
    "connections": [
      { "id": "use", "from": "guest", "to": "app", "label": "books" },
      { "id": "call", "from": "app", "to": "gateway", "technology": "HTTPS" },
      { "id": "route", "from": "gateway", "to": "booking", "label": "routes" },
      { "id": "price", "from": "booking", "to": "pricing", "label": "asks price" },
      { "id": "store", "from": "booking", "to": "db", "technology": "SQL" },
      { "id": "stock", "from": "booking", "to": "legacy", "label": "checks rooms" },
      { "id": "charge", "from": "booking", "to": "pay", "label": "charges", "technology": "HTTPS" }
    ],
    "perspectives": [
      {
        "key": "owner",
        "title": "Team",
        "description": "The team named in the service catalogue runs each component.",
        "categories": [
          { "label": "Storefront", "components": ["app"] },
          { "label": "Bookings", "components": ["booking", "pricing"] },
          { "label": "Platform", "components": ["gateway", "db", "legacy"] }
        ]
      },
      {
        "key": "debt",
        "title": "Technical debt",
        "description": "Debt as the owning team rated it in the last review.",
        "categories": [
          { "label": "low", "components": ["app", "pricing"] },
          { "label": "medium", "components": ["gateway", "db"] },
          { "label": "high", "components": ["booking"] }
        ]
      }
    ],
    "views": [
      {
        "key": "owners",
        "title": "Booking platform: who runs what",
        "components": ["guest", "app", "gateway", "booking", "pricing", "db", "legacy", "pay"],
        "perspective": "owner"
      },
      {
        "key": "debt",
        "title": "Booking platform: technical debt",
        "components": ["guest", "app", "gateway", "booking", "pricing", "db", "legacy", "pay"],
        "perspective": "debt"
      }
    ]
  }
}