Skip to content

SurrealDB vs.
Neo4j

Neo4j. Built for traversal-heavy graph workloads at modest scale.
SurrealDB. Built for live, large-scale application data, graph included.
Together in one. Graph beside documents, vectors and relations.

01 |THE DIFFERENCE

Where Neo4j is read-tuned, SurrealDB is built for live data

Neo4j is optimised for read-heavy graph workloads. SurrealDB is designed for continuously updated graphs and multi-model workloads at scale.

02 |THE SAME QUERY

Similar documents, from one team, this quarter. A procedure call and a pattern match in Cypher. One statement in SurrealQL, on one index set.

Neo4j (Cypher)

1// Cypher: the vector index as a procedure call, then the traversal
2CALL db.index.vector.queryNodes('doc_embedding', 10, $q)
3YIELD node AS d, score
4MATCH (d)<-[:AUTHORED]-(:Person)-[:MEMBER_OF]->(:Team {id: $team})
5WHERE d.published > datetime() - duration('P90D')
6RETURN d.title, score
7ORDER BY score DESC;

SurrealQL

1-- SurrealQL: the similarity and the path, together
2SELECT
3 title,
4 vector::similarity::cosine(embedding, $q) AS score
5FROM document
6WHERE embedding <|10|> $q
7 AND <-authored<-person->member_of->team CONTAINS $team
8 AND published > time::now() - 90d
9ORDER BY score DESC;

03 |HOW IT COMPARES

How SurrealDB and Neo4j differ

AI applications need live data, continuous updates and complex retrieval, which pushes read-optimised graph stores to their limits.

Data

SurrealDB

Neo4j

Models
Multi-modelNative multi-model: document, relational, graph, key-value, time-series, vector, and geospatial.
Graph onlySingle-model graph database focused on nodes, relationships, and properties.
Operations
Architecture
DecoupledDistributed, multi-model database with decoupled query and storage layers. Designed for heavy read and write workloads.
CoupledGraph-native with tightly coupled storage and compute. Performance depends on in-memory page cache.
Scale
HorizontalHorizontally scalable for both reads and writes. Designed to avoid manual sharding.
Single writerEach database uses a single write leader. Write scaling requires partitioning data across composite databases.
Write performance
SustainedWrite path designed for concurrent updates across nodes. Storage optimised for sustained write throughput.
Cache-boundRelies on in-memory page cache. Writes cause churn and eviction, degrading performance.
Resilience
No single pointDistributed deployment provides high availability. No single node failure causes system unavailability.
Re-electionLoss of the primary writer causes temporary unavailability until leader re-election.
Consistency and cost
Transactional consistency
Distributed ACIDDistributed ACID transactions with strong consistency guarantees.
Leader ACIDACID on write leader. Clustered reads are replica-lagged unless causal consistency is enforced via bookmarks.
Pricing
Open coreOpen source core with straightforward pricing. Costs scale linearly with data volume and workload.
GatedEnterprise capabilities gated behind proprietary offerings. Scaling requires full-replica read nodes.

04 |DIGITAL TWINS

Graph plus everything else. Telemetry, documents, vectors and geography beside the graph, in one engine.

One query

Walk, join, score and bound in one statement

Neo4j models the graph of a digital twin well. Telemetry, configuration documents, semantic search, geospatial state and scenario branching usually mean further systems and a sync layer. SurrealDB holds all of them in one engine and one query language. Read more in the digital twins use case.

-- One query: walk the graph, join recent telemetry,
-- score similar incidents by vector, restrict by geography.
SELECT
id, name, status,
->depends_on->asset.{ id, name, status } AS upstream,
(SELECT value, recorded_at FROM reading
WHERE asset_id = $parent.id AND metric = "vibration"
ORDER BY recorded_at DESC LIMIT 3) AS recent_readings,
(SELECT id, summary, vector::distance::knn() AS dist
FROM incident_report
WHERE embedding <|3|> $manual_chunk) AS similar_incidents
FROM asset
WHERE kind = "compressor"
AND geo::distance(location, (-1.6, 53.8)) < 25000;

TRUSTED BY

Enterprise teams building on SurrealDB

Neo4j,answered

Neo4j is a graph-native database optimised for read-heavy traversal. SurrealDB is a multi-model database with native graph beside documents, vectors, full-text and temporal data, built for continuously updated production systems.

THE PLATFORM

Everything an application and its agents know. Five surfaces, one engine.

IN PRODUCTION

Trusted at scale. Samsung, Nvidia, Verizon, Tencent and Walmart run on SurrealDB.

14,000+

Developers building on SurrealDB Cloud

4M+

Developers building on SurrealDB worldwide

FROM THE TEAMS

SurrealDB gives us a foundation where we can unify semantic search, knowledge graphs, and AI-driven decision making without stitching together multiple systems. Collapsing responsibility into SurrealDB has become our default engineering posture.
Justin Foley

VP of Engineering, Later

GET STARTED

Migrate from Neo4j. Traverse, search and transact in one engine.

SurrealDB

The context and memory layer for AI agents

Database. Graphs, vectors, documents and relational data in one engine, in a single ACID transaction.
Agent Memory. Connects and retrieves context wherever your data lives, every fact carrying its source.
Cloud. Fully managed, in the cloud provider and region you choose.

Explore with AI

Copyright © 2026 SurrealDB Ltd. Registered in England and Wales. Company no. 13615201

Registered address: 3rd Floor 1 Ashley Road, Altrincham, Cheshire, WA14 2DT, United Kingdom

Trading address: Huckletree Oxford Circus, 213 Oxford Street, London, W1D 2LG, United Kingdom