Skip to main content
The database engine is the heart of Convex’s data management, providing ACID transactions, snapshot isolation, reactive subscriptions, and automatic index maintenance.

Overview

Path: crates/database/ The database crate implements:
  • Transactional ACID database with snapshot isolation
  • Table and schema management
  • Index coordination and query optimization
  • Reactive subscription tracking
  • Read and write set management
  • Strong consistency guarantees

Architecture

Core components

Database struct

Main database interface:

Transaction

Path: crates/database/src/transaction.rs Transactional interface:

Transaction lifecycle

Begin transaction

Commit transaction

Conflict detection

Query execution

Query builder

Path: crates/database/src/query.rs

Index selection

Table registry

Path: crates/database/src/table_registry.rs

Schema registry

Path: crates/database/src/schema_registry.rs

Subscription management

Path: crates/database/src/subscription.rs

Index workers

Path: crates/database/src/database_index_workers.rs

Read and write sets

Path: crates/database/src/reads.rs and crates/database/src/writes.rs

Testing

Transaction tests

Next steps