chartletv0.21.0chartlet.casoon.de

← All examples

Gateway fan-out with shared logging

A gateway that calls four services, each of which writes to one log store. With "sharedTrunks": true the calls to Catalog, Search and Cart leave the gateway on one line that branches, and the four dashed log writes reach the store on one, with a dot at every branch. Only connections that read the same share a line: the call to Orders lies on the main path and the token check has a label, so both keep their own. Every connection is still drawn end to end with its tooltip and listed in the description and the table. Illustrative values.

Gateway fan-out with shared logging

examples/service-fan-out.json
{
  "schemaVersion": 1,
  "type": "architecture",
  "title": "Gateway fan-out with shared logging",
  "source": "Platform handbook, request path",
  "width": 960,
  "height": 640,
  "architecture": {
    "boundaries": [
      {
        "id": "cluster",
        "label": "Cluster"
      },
      {
        "id": "services",
        "label": "Services",
        "in": "cluster"
      },
      {
        "id": "ops",
        "label": "Operations"
      }
    ],
    "components": [
      {
        "id": "client",
        "label": "Client",
        "kind": "frontend"
      },
      {
        "id": "gateway",
        "label": "Gateway",
        "sublabel": "routes requests",
        "in": "cluster"
      },
      {
        "id": "auth",
        "label": "Sign-in",
        "kind": "security",
        "in": "cluster"
      },
      {
        "id": "catalog",
        "label": "Catalog",
        "in": "services"
      },
      {
        "id": "search",
        "label": "Search",
        "in": "services"
      },
      {
        "id": "cart",
        "label": "Cart",
        "in": "services"
      },
      {
        "id": "orders",
        "label": "Orders",
        "in": "services"
      },
      {
        "id": "logs",
        "label": "Log store",
        "kind": "storage",
        "in": "ops"
      }
    ],
    "connections": [
      {
        "from": "client",
        "to": "gateway",
        "label": "calls",
        "technology": "HTTPS"
      },
      {
        "from": "gateway",
        "to": "auth",
        "label": "checks token"
      },
      {
        "from": "gateway",
        "to": "catalog"
      },
      {
        "from": "gateway",
        "to": "search"
      },
      {
        "from": "gateway",
        "to": "cart"
      },
      {
        "from": "gateway",
        "to": "orders"
      },
      {
        "from": "catalog",
        "to": "logs",
        "dash": "dashed"
      },
      {
        "from": "search",
        "to": "logs",
        "dash": "dashed"
      },
      {
        "from": "cart",
        "to": "logs",
        "dash": "dashed"
      },
      {
        "from": "orders",
        "to": "logs",
        "dash": "dashed"
      }
    ],
    "mainPath": [
      "client",
      "gateway",
      "orders"
    ],
    "sharedTrunks": true
  }
}
Focus
Gateway fan-out with shared logging
Gateway fan-out with shared loggingArchitecture diagram with 8 components and 10 connections in 3 boundaries. Cluster: Gateway, Sign-in, Services. Services (in Cluster): Catalog, Search, Cart, Orders. Operations: Log store. Main path: Client → Gateway → Orders. Most connected: Gateway (6 connections). Nothing leads into Client. Nothing leads out of Sign-in and Log store. Client (frontend): connects to Gateway (calls, via HTTPS). Gateway (service): connects to Sign-in (checks token), Catalog, Search, Cart and Orders. Sign-in (security): no outgoing connection. Catalog (service): connects to Log store. Search (service): connects to Log store. Cart (service): connects to Log store. Orders (service): connects to Log store. Log store (storage): no outgoing connection.OperationsClusterServicesClient → Gateway: calls [HTTPS]Gateway → Sign-in: checks tokenGateway → CatalogGateway → SearchGateway → CartGateway → OrdersCatalog → Log storeSearch → Log storeCart → Log storeOrders → Log storecalls[HTTPS]checks tokenClientClientGateway – routes requestsGatewayroutes requestsSign-inSign-inCatalogCatalogSearchSearchCartCartOrdersOrdersLog storeLog store

Source: Platform handbook, request path

Show chart data
Data for Gateway fan-out with shared logging
ComponentKindBoundaryConnects to
ClientfrontendGateway (calls, via HTTPS)
GatewayserviceClusterSign-in (checks token), Catalog, Search, Cart, Orders
Sign-insecurityCluster
CatalogserviceCluster › ServicesLog store
SearchserviceCluster › ServicesLog store
CartserviceCluster › ServicesLog store
OrdersserviceCluster › ServicesLog store
Log storestorageOperations
  • Architecture diagram with shared trunks
  • Draw a fan-out without a tangle