Every query gets its own engine.
Thunderduck plans every query before it runs, picks a DuckDB worker sized to that plan, and runs it on its own — no shared cluster to size, no noisy neighbours, nothing idle to pay for.
Sized and priced before it starts.
Before a query runs, Thunderduck reads its plan: how many joins, how heavy the aggregations, how many rows and distinct values each step is expected to carry. From that shape it picks the smallest worker that runs the query comfortably, sets DuckDB's memory and threads for it, and shows the estimate to a person in the editor or an agent over MCP — before a single row is read.
ComingSizing that learns from how your past queries actually ran.
- • You pay for the seconds a query used, not for a warehouse left on
- • Small questions stay small: most queries run on one vCPU
- • A query bigger than its estimate spills to disk instead of failing
From one core to sixteen, picked for you.
No warehouse to size and no cluster to tune. Each query gets the worker its shape needs, and gives it back when it finishes.
Lookups, filters, dashboards and light aggregations — most queries live here and cost fractions of a cent.
Multi-way joins, heavy aggregations and wide window functions get the cores and memory they need.
Large fact-table joins and high-cardinality aggregations run on a big worker — only for as long as they run.
One query can't take down another.
No noisy neighbours
Each query runs in its own container with its own memory limit. A runaway join can't slow down a dashboard, and a crash takes down one query, not the cluster.
Controlled concurrency
Each company runs a set number of queries at once. The rest wait in line and start automatically, oldest first, showing how many are ahead.
A timeout on every run
Admins set how long a query, scheduled job or dbt run may take (3 hours by default). Anything past it is stopped and marked, so nothing bills forever.
Dedicated on demand
Keep your own instance warm so queries start in about a second, and let anything that doesn't fit run serverless. In BYOC, every worker runs in your own cloud account.