chartletv0.21.0chartlet.casoon.de

← All examples

Web shop on one cloud region, with symbols

The web shop on one cloud region with a generic symbol above the label of nine components — a browser, a content network, a container, a cache, a message broker, a function, object storage, identity and a cloud. The kind keeps its shape; each symbol is a plain stroke drawing, defined once per SVG, and the description and the table name it after the kind. Illustrative values.

Web shop on one cloud region, with symbols

examples/shop-symbols.json
{
  "schemaVersion": 1,
  "type": "architecture",
  "title": "Web shop on one cloud region, with symbols",
  "source": "Architecture handbook, overview",
  "width": 1840,
  "height": 600,
  "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",
        "kind": "frontend",
        "symbol": "browser"
      },
      {
        "id": "cdn",
        "label": "Content network",
        "kind": "external",
        "symbol": "cdn"
      },
      {
        "id": "api",
        "label": "Shop API",
        "sublabel": "Node.js",
        "in": "network",
        "symbol": "container"
      },
      {
        "id": "cache",
        "label": "Session cache",
        "sublabel": "Redis",
        "kind": "cache",
        "in": "network",
        "symbol": "cache"
      },
      {
        "id": "events",
        "label": "Order events",
        "kind": "queue",
        "in": "network",
        "symbol": "message-broker"
      },
      {
        "id": "worker",
        "label": "Order worker",
        "in": "network",
        "symbol": "function"
      },
      {
        "id": "db",
        "label": "Orders",
        "sublabel": "Postgres",
        "kind": "database",
        "in": "data"
      },
      {
        "id": "files",
        "label": "Invoices",
        "kind": "storage",
        "in": "region",
        "symbol": "object-storage"
      },
      {
        "id": "pay",
        "label": "Payment provider",
        "kind": "external",
        "symbol": "cloud"
      },
      {
        "id": "auth",
        "label": "Sign-in",
        "kind": "security",
        "in": "network",
        "symbol": "identity"
      }
    ],
    "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"
    ]
  }
}
Focus
Web shop on one cloud region, with symbols
Web shop on one cloud region, with symbolsArchitecture diagram with 11 components and 11 connections in 3 boundaries. Cloud region eu-central-1: Invoices, Private network. Private network (in Cloud region eu-central-1): Shop API, Session cache, Order events, Order worker, Sign-in, Data zone. Data zone (in Private network): Orders. Main path: Customer → Web shop → Shop API → Order events → Order worker → Payment provider. Most connected: Shop API (5 connections). Nothing leads into Customer. Bottleneck: Shop API; without it the diagram falls apart. Customer (person): connects to Web shop (browses). Web shop (frontend, web browser): connects to Content network (loads assets, via HTTPS) and Shop API (calls, via HTTPS/JSON). Shop API (service, container): connects to Session cache (sessions, via RESP), Sign-in (checks token, via OIDC), Orders (reads, writes, via SQL/TLS) and Order events (publishes, via AMQP). Content network (external system, content delivery network): no outgoing connection. Session cache (in-memory cache): no outgoing connection. Order events (queue, message broker): connects to Order worker (delivers). Sign-in (security, identity provider): no outgoing connection. Order worker (service, serverless function): connects to Payment provider (charges, via HTTPS), Invoices (stores PDF, via S3 API) and Orders (updates, via SQL/TLS). Orders (database): no outgoing connection. Invoices (object storage): no outgoing connection. Payment provider (external system, cloud service): no outgoing connection.Cloud region eu-central-1Private networkData zoneCustomer → Web shop: browsesWeb shop → Content network: loads assets [HTTPS]Web shop → Shop API: calls [HTTPS/JSON]Shop API → Session cache: sessions [RESP]Shop API → Sign-in: checks token [OIDC]Shop API → Orders: reads, writes [SQL/TLS]Shop API → Order events: publishes [AMQP]Order events → Order worker: deliversOrder worker → Payment provider: charges [HTTPS]Order worker → Invoices: stores PDF [S3 API]Order worker → Orders: updates [SQL/TLS]browsesloads assets[HTTPS]calls[HTTPS/JSON]sessions[RESP]checks token[OIDC]reads, writes[SQL/TLS]publishes[AMQP]deliverscharges[HTTPS]stores PDF[S3 API]updates[SQL/TLS]CustomerCustomerWeb shopWeb shopContent networkContent networkShop API – Node.jsShop APINode.jsSession cache – RedisSession cacheRedisOrder eventsOrder eventsOrder workerOrder workerOrders – PostgresOrdersPostgresInvoicesInvoicesPayment providerPayment providerSign-inSign-in

Source: Architecture handbook, overview

Show chart data
Data for Web shop on one cloud region, with symbols
ComponentKindBoundaryConnects to
CustomerpersonWeb shop (browses)
Web shopfrontend, web browserContent network (loads assets, via HTTPS), Shop API (calls, via HTTPS/JSON)
Shop APIservice, containerCloud region eu-central-1 › Private networkSession cache (sessions, via RESP), Sign-in (checks token, via OIDC), Orders (reads, writes, via SQL/TLS), Order events (publishes, via AMQP)
Content networkexternal system, content delivery network
Session cachein-memory cacheCloud region eu-central-1 › Private network
Order eventsqueue, message brokerCloud region eu-central-1 › Private networkOrder worker (delivers)
Sign-insecurity, identity providerCloud region eu-central-1 › Private network
Order workerservice, serverless functionCloud region eu-central-1 › Private networkPayment provider (charges, via HTTPS), Invoices (stores PDF, via S3 API), Orders (updates, via SQL/TLS)
OrdersdatabaseCloud region eu-central-1 › Private network › Data zone
Invoicesobject storageCloud region eu-central-1
Payment providerexternal system, cloud service
  • Architecture diagram with symbols
  • Make components recognizable at a glance