{
  "templateId": "capacityCanvas",
  "locale": "en",
  "metadata": {
    "source": "APIOps Cycles",
    "license": "CC-BY-SA 4.0",
    "authors": [
      "Osaango Ltd"
    ],
    "website": "www.apiopscycles.com",
    "date": "2026-03-30T21:10:16.832Z"
  },
  "sections": [
    {
      "sectionId": "currentBusinessVolumes",
      "stickyNotes": [
        {
          "content": "~5k searches/day baseline",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 56,
            "y": 132
          }
        },
        {
          "content": "~500 concurrent browse users",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 141,
            "y": 132
          }
        },
        {
          "content": "~2-3x detail calls per search",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 226,
            "y": 132
          }
        }
      ]
    },
    {
      "sectionId": "futureConsumptionTrends",
      "stickyNotes": [
        {
          "content": "Search growth 12-18% monthly",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 541,
            "y": 132
          }
        },
        {
          "content": "Mobile traffic dominates queries",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 626,
            "y": 132
          }
        },
        {
          "content": "Campaign peaks up to 4x baseline",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 711,
            "y": 132
          }
        }
      ]
    },
    {
      "sectionId": "peakLoadAndAvailabilityRequirements",
      "stickyNotes": [
        {
          "content": "p95 search under 500 ms",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 379,
            "y": 319
          }
        },
        {
          "content": "Support 4x peak without failure",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 464,
            "y": 319
          }
        },
        {
          "content": "99.9% discovery availability",
          "size": 80,
          "color": "#DFDDC5",
          "position": {
            "x": 549,
            "y": 319
          }
        }
      ]
    },
    {
      "sectionId": "cachingStrategies",
      "stickyNotes": [
        {
          "content": "Cache top queries for 5 min",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 56,
            "y": 506
          }
        },
        {
          "content": "Cache category results for 10 min",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 141,
            "y": 506
          }
        },
        {
          "content": "Use stale-while-revalidate",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 226,
            "y": 506
          }
        }
      ]
    },
    {
      "sectionId": "rateLimitingStrategies",
      "stickyNotes": [
        {
          "content": "Limit bot-like query bursts",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 379,
            "y": 506
          }
        },
        {
          "content": "Throttle heavy filter queries",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 464,
            "y": 506
          }
        },
        {
          "content": "Separate public and partner quotas",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 549,
            "y": 506
          }
        }
      ]
    },
    {
      "sectionId": "scalingStrategies",
      "stickyNotes": [
        {
          "content": "Scale read APIs horizontally",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 702,
            "y": 506
          }
        },
        {
          "content": "Autoscale search nodes on load",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 787,
            "y": 506
          }
        },
        {
          "content": "Isolate indexing from queries",
          "size": 80,
          "color": "#7DC9E7",
          "position": {
            "x": 872,
            "y": 506
          }
        }
      ]
    }
  ]
}