Skip to main content
All comparisons/ScramDB vs Firebolt

ScramDB vs Firebolt

Firebolt is built for one half of the job. Its primary index is explicitly not a uniqueness constraint, primary and foreign keys are not enforced, nothing in its documentation positions it for transactional work, and concurrency is bought by starting more engines, each billed by the second. ScramDB is a single binary you run wherever you like: it serves the transactions and answers a full analytical workload over 100 million rows in 31.6 seconds, on the same copy of the data, with no compute meter running.

Transactions
Serializable
Full ACID up to serializable isolation, on the same data the analytics reads.
Keys
Enforced
Primary and foreign keys are real constraints here. Firebolt’s primary index is documented as not a uniqueness constraint.
What you run
One binary
No Kubernetes, no Helm chart, no engine to size, no per-second compute meter.
Analytics
31.6s
A full analytical workload over 100 million rows, while transactions run on the same copy.
At a glance

Side by side

ScramDBFirebolt
What it isA database: transactions, analytics and AI on one live copyAn analytical engine, managed or self-managed on Kubernetes
Transactional workloadServing it is the pointNot positioned for it. No OLTP story in the documentation
Keys and constraintsPrimary keys, foreign keys and CHECK constraints, enforcedThe primary index is a sparse index, documented as not a uniqueness constraint
Cost modelA binary you run. No compute meter, no per-engine billingFirebolt Units billed per second, per engine, plus separate storage
ConcurrencyOne engine, all your coresStart more engines and pay for each one
Self hostingOne static binary, one commandSelf-managed edition via Helm chart or Kubernetes operator
Wire protocolPostgreSQL wire protocol, every standard driver and BI toolIts own SQL surface and drivers
AI and agentsA semantic layer built into the engine that AI agents connect to directly, bound by the caller’s own permissionsVector search through a table function over array columns

The meter is the difference

A rented engine bills by the second it is running, and buying concurrency means running more of them. That is a fine model when analytics is a scheduled batch. It is an awkward one when the analytics is your product and every customer session opens queries.

ScramDB is a binary. It runs on the machine you already pay for, uses every core of it, and costs the same whether one person is querying or a thousand.

A database, not a half of one

Firebolt does not claim to serve your transactions, so a Firebolt deployment implies a transactional database somewhere else and a pipeline to move data into it. ScramDB holds the transactions and answers the analytical questions from the same rows, with foreign keys, triggers, stored procedures, roles and row-level security intact.

When Firebolt is the right answer

Customer-facing analytics at very large scale, where the data arrives by pipeline, the queries are known, and aggressive indexing plus elastic compute is exactly the shape of the problem.

The measurement, as of 5 September 2026. A full analytical workload over 100 million rows of real web analytics data, run on a 16 vCPU AWS instance. Ours is a single ScramDB node in its stock configuration, with the GPU off and nothing tuned for the test. Rival figures are those systems’ own published results for the same instance type. These are the numbers as of that date, not a permanent scoreboard: the engine is tuned continuously and it has got faster through every round of this work, so a later run should read better than this one.

Run it yourself in one line

One static binary, no dependencies. It picks its own config, listens on the postgres port 5432 and runs in the background.

$curl -fsSL https://scramdb.com/install | bash

Quick start · How the engine works · Talk to us

A full analytical workload over 100 million rows of real web analytics data, run on a 16 vCPU AWS instance, measured 5 September 2026. Ours is a single ScramDB node in its stock configuration, with the GPU off and nothing tuned for the test. Rival figures are those systems’ own published results for the same instance type. These are the numbers as of that date, not a permanent scoreboard: the engine is tuned continuously and it has got faster through every round of this work, so a later run should read better than this one.