Architecture
clients (curl / browser SDK / Node SDK / MCP-speaking AI agent)
│ Bearer <api-key>
▼
┌────────────────────────────────────────────────┐
│ Hono on Cloudflare Workers │
│ /v1/track /v1/batch /v1/identify │
│ /v1/forget /v1/query /v1/stats │
│ /v1/sources /mcp /internal/retention │
└──────┬─────────────────────────┬───────────────┘
│ control plane │ event plane
▼ ▼
┌──────────────────┐ ┌────────────────────────┐
│ Supabase │ │ ClickHouse Cloud │
│ • auth.users │ │ • events │
│ • projects │ │ • daily_rollup MV │
│ • api_keys │ │ • sessions MV │
│ • usage_meter │ │ │
└──────────────────┘ └────────────────────────┘Why this split
Request shape
Privacy invariants
File map
Path
What lives there
Operational notes
Last updated
Was this helpful?