RadixDB architecture

Predictable data handling from write to scan

The engine separates mutable state from cold storage while retaining one SQL interface, transactional visibility, and bounded resource use.

The data path

01

SQL and planner

Parsing, expressions, statistics, and physical operator selection.

02

Transaction layer

MVCC, READ COMMITTED and SNAPSHOT, savepoints, and statement atomicity.

03

Hot row versions

Current changes remain available without rewriting cold blocks.

04

Columnar blocks

Immutable compressed segments for sequential and selective reads.

05

WAL and recovery

Write-ahead logging, checkpoints, and verified post-crash startup.

SQL

Familiar SQL. Explicit boundaries.

RadixDB supports DDL, DML, JOINs, aggregates, subqueries, CTEs, window functions, RETURNING, and ON CONFLICT. Where compatibility is limited, the manual says so directly.

BEGIN ISOLATION LEVEL SNAPSHOT;

UPDATE stock_balances
SET quantity = quantity - 4
WHERE product_id = :product
  AND revision = :expected
RETURNING quantity, revision;

COMMIT;

Index access

Indexes shaped for the query

  • BTREE for ranges and ordering
  • HASH for exact lookups
  • BITMAP for selective attributes
  • Composite and partial indexes

Application interfaces

From SQL to applications

Embedded Rust

Open databases and run queries directly in-process.

TCP client

Connect over the network to radixdb-server.

ORM facade

A typed application interface over queries and records.

Server programming

Routines, triggers, and jobs evolve as a separate layer.