cloudparts

SurrealDB

A multi-model database in Rust that stores documents, graph edges, vectors and time series in one engine, queried with an SQL-like language, SurrealQL, and able to run embedded, as a server or as a cluster.

Type
Commercial product
Made by
SurrealDB Ltd.
License
Business Source License 1.1 (becomes Apache 2.0 on 1 January 2030 for 3.0)
Facts checked
24 October 2026

What it is

SurrealDB keeps records in tables, each with an ID like person:aristotle, and lets a table be schemaless JSON or fully typed. Records can link to each other directly, and RELATE creates graph edges stored as records in an edge table, with in and out fields and data of their own, so SELECT ->wrote->article FROM person:aristotle walks the graph. The same engine does full-text and vector search, geospatial and time-series queries. SurrealQL keeps the shape of SQL and adds graph traversals, nested field access and similarity functions, and transactions can span many rows and tables.

Access control is part of the database: DEFINE TABLE ... PERMISSIONS rules decide per table and field what each signed-in user may read and write, using $auth, so a front end can query the database directly. LIVE SELECT subscribes a client to changes on a table or a filtered set of records, delivered as full records or JSON Patch diffs.

The query layer is separate from storage. One binary runs in memory (SurrealMX), on disk with RocksDB or the in-house SurrealKV (still beta), in the browser on IndexedDB, embedded in Rust, Go, JavaScript, Python or .NET programs, or as a multi-node cluster on shared distributed storage in SurrealDB Cloud and the self-hosted Enterprise edition. Every engine gives snapshot isolation with write conflicts detected at commit. Version 3.0 came out in February 2026; the 3.x source is under the Business Source License, which allows production use but not offering SurrealDB as a database service to others, and turns into Apache 2.0 on 1 January 2030.

Why teams pick it

  • Documents, graph edges, vectors and full-text search in one engine and one query language, in one transaction
  • Row- and field-level permissions and live queries, so client apps can talk to it without an API layer in between
  • Runs anywhere from a browser tab or an embedded library to a managed cluster
  • SQL-like syntax that is quick to pick up for anyone who knows SQL

Watch out for

  • Business Source License, not open source: you may not run it as a database service for others until the change date
  • Young compared with PostgreSQL or MongoDB, with a smaller ecosystem of tools, drivers and operators
  • Multi-node clusters on distributed storage are a Cloud and Enterprise feature; the open RocksDB and SurrealKV engines are single-node
  • SurrealQL is its own dialect, so SQL tools, ORMs and BI connectors don’t work with it as they are

Good for

Data model
Multi-model: documents, graph edges, vectors and time series in tables
Query language
SurrealQL, an SQL-like language with graph traversals
Secondary indexes
Includes full-text and vector search indexes
Transactions
Across many rows and tables
Default isolation
Snapshot isolation; write conflicts detected at commit
How it scales
Single node on RocksDB or SurrealKV; clusters on distributed storage in Cloud and Enterprise
Storage engine
Pluggable: in memory (SurrealMX), RocksDB, SurrealKV (beta), IndexedDB, distributed storage
Written in
Rust
Ways to run it
Embedded, single server, self-hosted Enterprise cluster, or SurrealDB Cloud

Alternatives

What all document databases have in common →Compare side by side →
ArangoDBCommercialAlso good for nested documents that keep changingA multi-model database: JSON documents, key-value lookups, graphs, full-text search and vectors in one engine, queried with one language, AQL.MongoDBCommercialAlso good for nested documents that keep changingA document database that stores JSON-like records with a flexible schema, from one replica set to a sharded cluster.Neo4jOpen sourceThe best-known native graph database: nodes and relationships stored as linked records, queried with Cypher, self-hosted or as AuraDB.SupabaseCommercialA backend built around one dedicated Postgres database per project, with a REST API generated from its schema, JWT auth, file storage, realtime updates and edge functions, all assembled from open-source parts you can also self-host.Apache CouchDBOpen sourceA JSON document database spoken to entirely over HTTP, built around replication: any two copies can sync in either direction and keep conflicting edits instead of losing them.DocumentDBOpen sourceA MongoDB-compatible document database built as PostgreSQL extensions plus a gateway, so MongoDB drivers and tools talk to Postgres underneath.RethinkDBDormantOpen sourceA clustered JSON document database whose queries can stay open as changefeeds, pushing every change to the client instead of the app polling for it.FaunaArchivedCommercialA serverless, globally replicated document database with strictly serializable transactions and its own query language, FQL; the service shut down in May 2025.

How it fits with other technologies

SurrealQL: records, a graph edge, a permission rule and a live query · text

CREATE person:aristotle SET name = 'Aristotle';
CREATE article:sleep SET title = 'On Sleep and Sleeplessness', published = true;
RELATE person:aristotle->wrote->article:sleep SET year = -350;   -- an edge record

SELECT name, ->wrote->article.title AS titles FROM person:aristotle;

DEFINE TABLE post SCHEMALESS
  PERMISSIONS
    FOR select WHERE published = true OR user = $auth.id
    FOR create, update, delete WHERE user = $auth.id;

LIVE SELECT * FROM post WHERE published = true;   -- push changes to this client

See it in a real stack

No architecture uses SurrealDB yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2022–2026

Tobie and Jaime Morgan Hitchcock founded SurrealDB in London as one database for document and graph data, with access rules and real-time queries built in so that web apps could query it directly. The engine, written in Rust, was released publicly on GitHub in 2022.

A $6 million seed round followed in January 2023, and 1.0, the first stable release, came out in September 2023. In November 2025 the company raised a $38 million Series A, bringing its total to $44 million, and in February 2026 it released SurrealDB 3.0, the third major version of the engine, under a Business Source License that turns into Apache 2.0 in 2030.

Why it’s built this way

One engine for many models
Apps that need documents, relationships, search and vectors usually stitch several databases together. Putting them in one engine lets one query and one transaction span all of them.
Permissions and live queries in the database
If the database itself enforces who may read what and pushes changes, a front end can connect to it directly without a hand-written API server.
Compute separate from pluggable storage
Any key-value engine that offers transactional reads and writes of keys and ranges can sit underneath, so the same query layer runs in a browser, on one disk or on distributed storage.
Business Source License
It lets anyone use SurrealDB in production while stopping other companies from selling it as a hosted service, and the 3.0 code becomes Apache 2.0 on 1 January 2030.

Timeline

  1. 2022

    Engine released publicly on GitHub

  2. 2023

    $6 million seed round in January; 1.0 released in September

  3. 2025

    $38 million Series A

  4. 2026

    SurrealDB 3.0 released in February

Sources7 · facts checked 24 October 2026

Improve this page on GitHub