NodeDB
Seven data engines in one binary. Vectors, graphs, documents, columns, key-value, full-text search, and CRDT sync — with shared storage, shared memory, and zero network hops between engines.
Seven Engines, One Process
Vector (HNSW), Graph (CSR), Document (schemaless + strict), Columnar (timeseries + spatial profiles), Key-Value, Full-Text Search (BM25), and CRDT. Cross-engine queries execute in one process — no network hops, no application-level joins.
Three-Plane Architecture
Control Plane (Tokio) for SQL planning, Data Plane (Thread-per-Core + io_uring) for storage I/O and SIMD math, Event Plane for CDC, triggers, and cron. Connected by lock-free SPSC ring buffers.
PostgreSQL Compatible
Connect with psql, any PostgreSQL driver, or ORM. Six wire protocols: pgwire, HTTP, native MessagePack, RESP (Redis), ILP (InfluxDB), and WebSocket sync.
Edge to Cloud
NodeDB-Lite embeds all seven engines in phones, browsers (WASM), and desktops. Offline-first with sub-millisecond reads. CRDT sync to Origin via WebSocket when connectivity returns.
Real-Time Built In
LIVE SELECT, CDC change streams with consumer groups, durable pub/sub topics, webhook delivery, cron scheduler, and streaming materialized views. No Kafka or Redis Streams sidecar needed.
Production Security
SCRAM-SHA-256, JWKS (multi-provider JWT), mTLS, RBAC, row-level security across all engines, hash-chained audit log, tenant isolation, and AES-256 encryption at rest.
What NodeDB Replaces
The combination of PostgreSQL + pgvector + Redis + Neo4j + ClickHouse + Elasticsearch — unified into one binary with shared storage and zero network hops.
| Engine | Purpose | Replaces |
| Vector | Semantic search, RAG, recs | pgvector, Qdrant |
| Graph | Relationships, GraphRAG | Neo4j |
| Document | Flexible or strict schemas | MongoDB, PostgreSQL |
| Columnar | Analytics, timeseries, spatial | ClickHouse, DuckDB |
| Key-Value | Sessions, counters, caches | Redis, DragonflyDB |
| Full-Text Search | BM25, fuzzy, hybrid fusion | Elasticsearch |
| CRDT | Offline sync, edge devices | Custom sync layers |
Choose Storage Per Collection
Unlike most databases that lock you into one model, NodeDB lets you choose per collection — and convert at any time.
CREATE COLLECTION users; -- schemaless document
CREATE COLLECTION orders TYPE DOCUMENT STRICT (id UUID, ...); -- strict (OLTP)
CREATE COLLECTION metrics TYPE COLUMNAR (ts TIMESTAMP TIME_KEY, ...); -- timeseries
CREATE COLLECTION sessions TYPE KEY_VALUE (key TEXT PRIMARY KEY); -- key-value
CONVERT COLLECTION users TO strict; -- convert when schema stabilizes
Cross-Engine Queries in Standard SQL
-- Vector search with metadata pre-filtering
SELECT title, vector_distance(embedding, $query_vec) AS score
FROM articles WHERE category = 'ml'
AND id IN (SEARCH articles USING VECTOR(embedding, $query_vec, 10));
-- GraphRAG: vector seeds + graph expansion + RRF fusion
GRAPH RAG FUSION ON entities
QUERY $embedding VECTOR_TOP_K 50 EXPANSION_DEPTH 2
EDGE_LABEL 'related_to' FINAL_TOP_K 10;
-- Hybrid BM25 + vector
SELECT title, rrf_score(
vector_distance(embedding, $query_vec),
bm25_score(body, 'distributed database')
) AS score FROM articles LIMIT 10;
-- Spatial + vector
SELECT name FROM restaurants
WHERE ST_DWithin(location, ST_Point(-73.99, 40.75), 2000)
AND embedding <-> $query_vec LIMIT 10;
Quick Start
Start NodeDB and run your first queries across all seven engines in five minutes.
Architecture
How the three-plane execution model works — Control, Data, and Event planes.
Data Modeling
Collections, schemas, storage engines, columnar profiles, and index types.
SQL Reference
Full query language reference — standard SQL plus engine-specific extensions.
Ready to build?
Get NodeDB running in under a minute with Docker or from source.