Skip to main content
All comparisons/ScramDB vs Apache Druid

ScramDB vs Apache Druid

Druid is a real-time analytics database with a hard constraint at the centre of it: its documentation states that it does not support single-record updates by primary key, and deleting individual records means rewriting segments. Around that sits a cluster of coordinator, overlord, broker, historical and middle manager processes, plus ZooKeeper, a metadata database and deep storage. ScramDB is one binary where UPDATE is just UPDATE, and it answered the same analytical workload far faster.

Faster
10.0x
ScramDB 31.6s against Druid 314s. Druid left queries unanswered on this run; its total counts only what it finished.
Faster from cold
2.9x
ScramDB 189s against Druid 545s. First touch, nothing cached.
Faster to load
27x
ScramDB 717s against Druid 19,620s. Full 100 million row ingest.
Smaller on disk
2.6x
ScramDB 16.1 GiB against Druid 42.1 GiB. Same data, after load.
At a glance

Side by side

ScramDBApache Druid
Updating a rowAn ordinary transactional UPDATENot supported by primary key. Updates mean replacing a time range or reindexing
Deleting a rowAn ordinary transactional DELETEReindexing with a filter, which rewrites segments
What you deployOne binary, one processCoordinator, overlord, broker, historical and middle manager, plus ZooKeeper, a metadata database and deep storage
TransactionsFull ACID up to serializable isolationNo multi-statement transaction model documented
JoinsEvery SQL join, planned and compiledEquality joins, with documented performance overhead and a recommendation to avoid them at query time
Wire protocolPostgreSQL wire protocol, every standard driver and BI toolIts own SQL API
Referential integrityForeign keys, CHECK constraints, triggers, stored proceduresNot part of the model
AI and agentsA semantic layer inside the engine that agents connect to directly, bound by the caller’s own permissionsNo native vector search documented

A database where you cannot update a row

Druid is built for immutable event streams, and it says so: no single-record updates by primary key, and per-record deletes handled by rewriting segments. If your data is append-only telemetry that is a reasonable trade. If a customer can change their email address, it is a design problem you will carry forever.

Five services against one file

A Druid cluster is coordinator, overlord, broker, historical and middle manager processes, with ZooKeeper for coordination, a metadata database for state and deep storage for segments. That is a lot of moving parts to keep alive before the first query. ScramDB is one static binary that you start by typing its name.

When Druid is the right answer

Very high volume event streams with sub-second slice-and-dice over time ranges, where the data never changes after it lands and the operational footprint is worth it.

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.