{
  "id": "bbg-p0098-platform-selection-and-tradeoffs-platform",
  "title": "Commerce Platform Tech Stack",
  "chapter": "platform-selection-and-tradeoffs",
  "batch": "29",
  "rank": 282,
  "sourcePage": 98,
  "sourcePointer": "p. 98",
  "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 and extracted text inspected",
      "preserve stack categories: programming/UI, backend/servers, data, messaging, deployment, observability, and analytics",
      "rewrite product/logo grid into neutral architecture categories"
    ],
    "publicBoundary": [
      "original vector output",
      "no source pixels",
      "no source mark or long wording"
    ]
  },
  "callouts": [],
  "sourceReview": {
    "conceptAnchors": [
      "concept: programming languages and UI layer",
      "concept: backend servers and APIs",
      "concept: relational data plus cache",
      "concept: messaging, deployment, monitoring, and analytics support the platform"
    ],
    "labelSource": "curated",
    "semanticStatus": "reviewed"
  },
  "groups": [
    {
      "id": "experience",
      "label": "Experience and API",
      "x": 56,
      "y": 118,
      "w": 848,
      "h": 118
    },
    {
      "id": "state",
      "label": "State and messaging",
      "x": 56,
      "y": 278,
      "w": 848,
      "h": 118
    },
    {
      "id": "ops",
      "label": "Delivery and insight",
      "x": 56,
      "y": 438,
      "w": 848,
      "h": 98
    }
  ],
  "shapes": [
    {
      "id": "merchant",
      "kind": "actor",
      "label": "Merchant buyer",
      "detail": "web mobile",
      "x": 96,
      "y": 136,
      "w": 82,
      "h": 86,
      "tone": "blue"
    },
    {
      "id": "ui",
      "kind": "rect",
      "label": "UI stack",
      "detail": "typed frontend",
      "x": 268,
      "y": 142,
      "w": 122,
      "h": 58,
      "tone": "green"
    },
    {
      "id": "backend",
      "kind": "hex",
      "label": "Commerce app",
      "detail": "web framework",
      "x": 474,
      "y": 132,
      "w": 132,
      "h": 78,
      "tone": "orange"
    },
    {
      "id": "api",
      "kind": "rect",
      "label": "API layer",
      "detail": "graph queries",
      "x": 696,
      "y": 142,
      "w": 118,
      "h": 58,
      "tone": "purple"
    },
    {
      "id": "database",
      "kind": "cylinder",
      "label": "Relational DB",
      "detail": "orders catalog",
      "x": 210,
      "y": 300,
      "w": 126,
      "h": 76,
      "tone": "green"
    },
    {
      "id": "cache",
      "kind": "cylinder",
      "label": "Cache",
      "detail": "hot paths",
      "x": 418,
      "y": 300,
      "w": 118,
      "h": 76,
      "tone": "teal"
    },
    {
      "id": "messages",
      "kind": "queue",
      "label": "Messaging",
      "detail": "events jobs",
      "x": 632,
      "y": 314,
      "w": 124,
      "h": 50,
      "tone": "purple"
    },
    {
      "id": "deploy",
      "kind": "rect",
      "label": "Deploy",
      "detail": "ship changes",
      "x": 176,
      "y": 456,
      "w": 124,
      "h": 58,
      "tone": "orange"
    },
    {
      "id": "observe",
      "kind": "rect",
      "label": "Observability",
      "detail": "logs metrics",
      "x": 418,
      "y": 456,
      "w": 124,
      "h": 58,
      "tone": "red"
    },
    {
      "id": "analytics",
      "kind": "rect",
      "label": "Analytics",
      "detail": "business signals",
      "x": 660,
      "y": 456,
      "w": 124,
      "h": 58,
      "tone": "gray"
    }
  ],
  "connectors": [
    {
      "from": "merchant",
      "to": "ui",
      "label": "use",
      "flow": "main"
    },
    {
      "from": "ui",
      "to": "backend",
      "label": "request",
      "flow": "main"
    },
    {
      "from": "backend",
      "to": "api",
      "label": "expose",
      "flow": "control"
    },
    {
      "from": "backend",
      "to": "database",
      "label": "persist",
      "flow": "data"
    },
    {
      "from": "backend",
      "to": "cache",
      "label": "accelerate",
      "flow": "data"
    },
    {
      "from": "backend",
      "to": "messages",
      "label": "async",
      "flow": "async"
    },
    {
      "from": "deploy",
      "to": "backend",
      "label": "release",
      "flow": "control"
    },
    {
      "from": "backend",
      "to": "observe",
      "label": "signals",
      "flow": "data",
      "dashed": true
    },
    {
      "from": "database",
      "to": "analytics",
      "label": "events",
      "flow": "data",
      "dashed": true
    }
  ]
}
