chartletv0.21.0

← All examples

Booking service

A context view and a numbered view of one booking from one model. Recipe "Software architecture in views" in the Recipes guide of the documentation.

Booking service

examples/recipes/architecture-views/spec.json
{
  "schemaVersion": 1,
  "type": "architecture",
  "title": "Booking service",
  "source": "Illustrative model for this recipe",
  "width": 1200,
  "height": 480,
  "architecture": {
    "boundaries": [
      {
        "id": "system",
        "label": "Booking system"
      }
    ],
    "components": [
      {
        "id": "guest",
        "label": "Guest",
        "kind": "person"
      },
      {
        "id": "web",
        "label": "Booking site",
        "sublabel": "browser",
        "kind": "frontend",
        "in": "system"
      },
      {
        "id": "api",
        "label": "Booking API",
        "sublabel": "Node.js",
        "in": "system"
      },
      {
        "id": "db",
        "label": "Reservations",
        "sublabel": "Postgres",
        "kind": "database",
        "in": "system"
      },
      {
        "id": "mail",
        "label": "Mail service",
        "sublabel": "SMTP provider",
        "kind": "external"
      }
    ],
    "connections": [
      {
        "id": "visit",
        "from": "guest",
        "to": "web",
        "label": "books a room"
      },
      {
        "id": "call",
        "from": "web",
        "to": "api",
        "label": "calls",
        "technology": "HTTPS/JSON"
      },
      {
        "id": "save",
        "from": "api",
        "to": "db",
        "label": "stores",
        "technology": "SQL/TLS"
      },
      {
        "id": "confirm",
        "from": "api",
        "to": "mail",
        "label": "sends confirmation",
        "technology": "SMTP"
      }
    ],
    "views": [
      {
        "key": "context",
        "title": "Booking service: context",
        "components": [
          "guest",
          "api",
          "mail"
        ]
      },
      {
        "key": "booking",
        "title": "Booking service: one booking",
        "steps": [
          {
            "connection": "visit",
            "label": "chooses dates"
          },
          {
            "connection": "call",
            "label": "submits"
          },
          {
            "connection": "save",
            "label": "reserves"
          },
          {
            "connection": "confirm"
          }
        ]
      }
    ]
  }
}
Focus
Booking service: context
Booking service: contextArchitecture diagram with 3 components and 1 connection in 1 boundary. It is a view that shows 3 of the model's 5 components and 1 of its 4 connections. Booking system: Booking API. Nothing leads into Booking API. Nothing leads out of Mail service. The diagram has 2 unconnected parts. Guest (person): no outgoing connection. Booking API (service): connects to Mail service (sends confirmation, via SMTP). Mail service (external system): no outgoing connection.Booking systemBooking API → Mail service: sends confirmation [SMTP]sends confirmation[SMTP]GuestGuestBooking API – Node.jsBooking APINode.jsMail service – SMTP providerMail serviceSMTP provider

Source: Illustrative model for this recipe

Show chart data
Data for Booking service: context
ComponentKindBoundaryConnects to
Guestperson
Booking APIserviceBooking systemMail service (sends confirmation, via SMTP)
Mail serviceexternal system
  • Software architecture in views
  • Architecture (views)
  • Page of all views, SVG per view