Same shape banks use: feed → tickerplant → RDB → HDB → gateway. Run it on your laptop, walk it in interviews.
Binance WS batches → .u.upd[`trade; cols]
jkdb IPCOne write path, TP log, fan-out to subscribers
.u.upd / .u.pubToday in RAM: trade, bars1m, spikes
upd + analyticsDate partitions on disk after .u.end / EOD
.Q.dpftClients never hopen the TP; they hit the GW
HTTP JSONUI → Next.js /api/* → gateway :5013 → RDB (today). EOD writes RDB into HDB date folders under kdb/data/hdb/.
Why a tickerplant?
Decouples feeds from consumers, one durable log, many RDBs can subscribe and recover.
RDB vs HDB?
RDB holds mutable today in memory. HDB is immutable history, partitioned by date (often sym-parted).
What is .u.end?
End-of-day: RDB writes tables with .Q.dpft into the HDB root, then clears memory for the next day.
Why a gateway?
Apps talk to one process. The GW knows which backend owns which date range and query shape.
# three terminals npm run kdb npm run kdb:ingest npm run dev # prove the path curl -s http://127.0.0.1:5013/health open http://localhost:3000/demo open http://localhost:3000 # end-of-day (interview moment) npm run kdb:eod ls kdb/data/hdb/$(date +%Y.%m.%d)/
Code map: kdb/tick/ · full notes: kdb/TICK.md
On Vercel this page is the storyboard. On your PC, start the stack to make the badges go live.