Skip to content

Hypertenant analytics · should be easy

rubberduck

Hypertenant OLAP on Cloudflare.

Scale-to-zero DuckDB over R2 Parquet. Per-org ducklings, one wrangler deploy, graduate compute without moving the lake.

$curl -X POST …/query -d '{"sql":"SELECT count(*) FROM lineitem"}'
3
CF services
25×
faster than D1
~$5
idle / month
1
wrangler deploy
session · org_tpch
httpPOST /v1/orgs/org_tpch/query
eventsession.started org="org_tpch"
eventduckling.placement tier=worker
eventstorage.read r2://org_tpch/lineitem/*.parquet
sqlSELECT count(*) FROM lineitem
→ 600572 rows · wall 174ms
eventsession.completed

Three services. One deploy. SQL over Parquet.

No ceremony. Need more than a Worker later? Scaling.

01

Just works on Cloudflare

Workers + R2 + D1. Two Workers because WASM exceeds the 10 MiB script cap — platform constraint, not aesthetic split.

02

Easy to run idle

Scale to zero between queries. ~$5/mo Workers Paid floor when idle — CPU-ms and egress still meter at volume (see limits).

03

Fast on Parquet OLAP

DuckDB beats SQLite/D1 by 25–98× on groupbys at 1M rows in-process. Cold client latency is higher; see benchmarks.

Live on Cloudflare Workers

Query org_tpch or org_clickbench now. Bearer demo-token.

Open demo

rubberduckHypertenant OLAP on Cloudflare.

Scale-to-zero DuckDB over R2 Parquet. Per-org ducklings, one wrangler deploy, graduate compute without moving the lake.

Scales to zero. 25× faster than D1 on groupbys. No need to go to another provider.