{
  "id": "bbg-p0302-caching-and-rate-limiting-caching",
  "title": "Caching Layers Along a Request Flow",
  "chapter": "caching-and-rate-limiting",
  "batch": "06",
  "rank": 51,
  "sourcePage": 302,
  "sourcePointer": "p. 302",
  "status": "accepted",
  "reviewerStatus": "reviewed",
  "fidelityScore": 0.9,
  "canvas": {
    "width": 960,
    "height": 640
  },
  "fireworksTechGraph": {
    "style": "style-1-flat-icon",
    "diagramType": "architecture",
    "topologyNotes": [
      "source page render inspected",
      "extracted page text inspected",
      "source page render inspected",
      "preserve ordered cache layers from client and CDN through load balancer, brokers, service caches, distributed cache, search index, and database internals",
      "omit source prose question and long explanatory bullets"
    ],
    "publicBoundary": [
      "original vector output",
      "no source pixels",
      "no source mark or long wording"
    ]
  },
  "callouts": [],
  "sourceReview": {
    "conceptAnchors": [
      "concept: browser cache",
      "concept: CDN and load balancer cache",
      "concept: messaging retention",
      "concept: service and distributed cache",
      "concept: search and database internal caches"
    ],
    "labelSource": "curated",
    "semanticStatus": "reviewed"
  },
  "groups": [
    {
      "id": "edge",
      "label": "Client and edge",
      "x": 50,
      "y": 112,
      "w": 858,
      "h": 92
    },
    {
      "id": "runtime",
      "label": "Runtime cache path",
      "x": 50,
      "y": 244,
      "w": 858,
      "h": 116
    },
    {
      "id": "data",
      "label": "Data-system caches",
      "x": 50,
      "y": 408,
      "w": 858,
      "h": 108
    }
  ],
  "shapes": [
    {
      "id": "client",
      "kind": "actor",
      "label": "Client app",
      "detail": "browser cache",
      "x": 88,
      "y": 116,
      "w": 78,
      "h": 78,
      "tone": "blue"
    },
    {
      "id": "cdn",
      "kind": "gateway",
      "label": "CDN",
      "detail": "nearby node",
      "x": 258,
      "y": 120,
      "w": 108,
      "h": 68,
      "tone": "orange"
    },
    {
      "id": "lb",
      "kind": "gateway",
      "label": "Load balancer",
      "detail": "resource cache",
      "x": 448,
      "y": 120,
      "w": 122,
      "h": 68,
      "tone": "purple"
    },
    {
      "id": "service",
      "kind": "rect",
      "label": "Service",
      "detail": "CPU memory disk",
      "x": 638,
      "y": 120,
      "w": 128,
      "h": 68,
      "tone": "green"
    },
    {
      "id": "broker",
      "kind": "queue",
      "label": "Broker",
      "detail": "retention",
      "x": 122,
      "y": 282,
      "w": 124,
      "h": 54,
      "tone": "purple"
    },
    {
      "id": "distcache",
      "kind": "cylinder",
      "label": "Distributed cache",
      "detail": "key value",
      "x": 348,
      "y": 268,
      "w": 126,
      "h": 82,
      "tone": "teal"
    },
    {
      "id": "search",
      "kind": "rect",
      "label": "Search index",
      "detail": "copy",
      "x": 584,
      "y": 280,
      "w": 122,
      "h": 58,
      "tone": "blue"
    },
    {
      "id": "wal",
      "kind": "rect",
      "label": "WAL log",
      "detail": "write first",
      "x": 110,
      "y": 438,
      "w": 112,
      "h": 54,
      "tone": "orange"
    },
    {
      "id": "buffer",
      "kind": "rect",
      "label": "Buffer pool",
      "detail": "query cache",
      "x": 282,
      "y": 438,
      "w": 112,
      "h": 54,
      "tone": "green"
    },
    {
      "id": "view",
      "kind": "rect",
      "label": "Materialized view",
      "detail": "precompute",
      "x": 454,
      "y": 438,
      "w": 130,
      "h": 54,
      "tone": "teal"
    },
    {
      "id": "logs",
      "kind": "rect",
      "label": "Txn repl logs",
      "detail": "cluster state",
      "x": 654,
      "y": 438,
      "w": 124,
      "h": 54,
      "tone": "gray"
    }
  ],
  "connectors": [
    {
      "from": "client",
      "to": "cdn",
      "label": "miss",
      "flow": "main"
    },
    {
      "from": "cdn",
      "to": "lb",
      "label": "origin",
      "flow": "main"
    },
    {
      "from": "lb",
      "to": "service",
      "label": "route",
      "flow": "main"
    },
    {
      "from": "service",
      "to": "distcache",
      "label": "lookup",
      "flow": "data"
    },
    {
      "from": "service",
      "to": "broker",
      "label": "async",
      "flow": "async"
    },
    {
      "from": "service",
      "to": "search",
      "label": "index",
      "flow": "data"
    },
    {
      "from": "service",
      "to": "wal",
      "label": "write",
      "flow": "control"
    },
    {
      "from": "wal",
      "to": "buffer",
      "label": "cache",
      "flow": "data"
    },
    {
      "from": "buffer",
      "to": "view",
      "label": "derive",
      "flow": "data"
    },
    {
      "from": "view",
      "to": "logs",
      "label": "replicate",
      "flow": "data",
      "dashed": true
    }
  ]
}
