RushDB vs Neo4j: a higher-level API on graph storage.
RushDB is not a from-scratch competing graph engine. Self-hosted RushDB runs on a Neo4j-compatible instance and uses Neo4j transaction guarantees underneath; managed RushDB Cloud handles that storage for you. The real comparison is between writing raw Cypher against Neo4j directly, or using RushDB’s JSON-in, schema-inferred, agent-oriented API layer on top of graph storage.
0
Migrations to adopt
BYOC points RushDB at the Neo4j or Aura instance you already run — adoption is additive, not a rewrite.
1
Write for records + relationships
A nested JSON import creates typed records and their connections in a single call — no hand-written CREATE statements.
0
Embedding jobs to operate
Managed indexes embed chosen text properties on write; Neo4j delegates embedding to your own provider key.
Side by side
The same task in both: store a customer with orders, search orders by meaning.
Both snippets create a customer connected to two orders and make order summaries semantically searchable. The difference is who does the modeling and embedding work.
// Write nodes and relationships by hand
CREATE (c:Customer {customerId: 'cust-1', name: 'Acme'})
CREATE (o1:Order {orderId: 'ord-1', summary: 'Annual plan upgrade'})
CREATE (o2:Order {orderId: 'ord-2', summary: 'Added 40 seats'})
CREATE (c)-[:PLACED]->(o1), (c)-[:PLACED]->(o2);
// Semantic search: create a vector index...
CREATE VECTOR INDEX order_summaries
FOR (o:Order) ON o.embedding
OPTIONS {indexConfig: {
`vector.dimensions`: 1536,
`vector.similarity_function`: 'cosine'
}};
// ...then compute embeddings with your own provider key,
// write them to o.embedding, and query with
// db.index.vector.queryNodes('order_summaries', 5, $vector)17 lines of Cypher, plus an embedding step Neo4j delegates to your own OpenAI, Vertex, or Bedrock key.
import RushDB from '@rushdb/javascript-sdk'
const db = new RushDB('RUSHDB_API_KEY')
await db.ai.indexes.create({ label: 'ORDER', propertyName: 'summary' })
await db.records.importJson({
label: 'CUSTOMER',
data: {
customerId: 'cust-1',
name: 'Acme',
ORDER: [
{ orderId: 'ord-1', summary: 'Annual plan upgrade' },
{ orderId: 'ord-2', summary: 'Added 40 seats' },
],
},
})
const recall = await db.ai.search({
labels: ['ORDER'],
propertyName: 'summary',
query: 'plan changes for Acme',
})One nested write creates the records and the relationships; the managed index embeds summaries as they land.
Switching
You don’t migrate off Neo4j. You add a layer on it.
This is the unusual part of this comparison: with BYOC, RushDB is not a rip-and-replace decision. Your graph data stays in the Neo4j or Aura instance you already operate — RushDB adds the JSON-in API, managed embeddings, live schema, and MCP tools on top, while existing Cypher applications keep working against the same instance.
01
Connect BYOC
Point RushDB at your existing Neo4j or Aura instance. Nothing about your current deployment, backups, or Cypher applications changes.
02
Adopt one workflow
Route one new workload — agent memory is the common first pick — through the RushDB API while everything else runs untouched.
03
Expand where it earns it
Move workloads that benefit from schema inference, managed embeddings, or MCP tool access. Keep raw Cypher for what your team already built.
Who this is for
Pick the right tool for the job.
Choose RushDB if
- You want to push JSON or CSV without designing a graph schema first.
- You need managed embedding indexes and semantic search without standing up a separate vectorization pipeline.
- You want a REST/SDK/MCP surface built for agents, not raw Cypher.
- You want the same API whether you run managed cloud, BYOC on your own Neo4j/Aura instance, or self-hosted.
Choose Neo4j if
- Your team already writes Cypher/GQL and wants direct control over the query language.
- You need Neo4j’s graph data science library, deep enterprise tooling, or GraphAcademy’s free structured courses and certifications.
- You are building custom GraphRAG pipelines with Neo4j’s LLM Knowledge Graph Builder and want to own that pipeline directly.
If your team already writes Cypher, models schema by hand, and wants direct access to the full graph data science and GraphAcademy ecosystem, Neo4j alone is a reasonable choice. If you want to push JSON in without modeling schema first, get managed embeddings and a live schema an agent can inspect, RushDB removes that layer of hand-built plumbing.
Comparison table
Query interface, schema, and vector search
RushDB and Neo4j overlap most on the storage layer, not the API. Rows marked with a source are Neo4j’s own documented facts, checked on the date shown; RushDB rows are verified against RushDB’s own docs referenced elsewhere on this site.
Runs on a Neo4j-compatible graph engine: managed automatically in RushDB Cloud, or your own Neo4j/Aura instance in BYOC and self-hosted modes.
Is the graph engine itself — self-hosted (Community/Enterprise, incl. Docker) or managed via AuraDB.
Source· checked 2026-07-01JSON-shaped REST API and TypeScript/Python SDKs with a SearchQuery contract shared across records, labels, properties, and relationships. No Cypher required.
Cypher, now GQL-conformant against the ISO/IEC 39075:2024 standard.
Source· checked 2026-07-01Infers property types and parent-child structure as JSON arrives; optional Model classes add validation when you want it.
Documented as "natively schema-free" — no schema required upfront, with optional constraints (uniqueness, existence, type, key) applied selectively.
Source· checked 2026-07-01Create an embedding index on a label + string property; RushDB can generate vectors server-side (managed) or accept vectors you supply (external).
Native vector index (dimensions up to 4096) using Lucene HNSW for approximate k-NN. Neo4j does not generate embeddings itself — GenAI plugin functions call out to your own OpenAI/Vertex/Bedrock key.
Source· checked 2026-07-01Native MCP server exposing records, relationships, queries, bulk operations, and transactions as discovery-first tools; Schema API gives agents a live structure snapshot before they query.
Neo4j Labs offers a GraphRAG Python package and an LLM Knowledge Graph Builder for entity/relationship extraction; not explicitly framed as agent memory.
Source· checked 2026-07-01Docs, guides, and use-case walkthroughs; no dedicated academy or certification program yet.
GraphAcademy: 30+ free self-paced courses plus free certifications (Certified Professional, Graph Data Science, GenAI).
Source· checked 2026-07-01Free plan includes 100K Knowledge Units per month, no credit card required.
AuraDB Free: $0, no card required, capped at 200,000 nodes / 400,000 relationships, one database, auto-deleted after 30 days of inactivity.
Source· checked 2026-07-01Neo4j facts sourced from neo4j.com, Neo4j’s Cypher manual, and GraphAcademy as of the dates shown above. The Cypher snippet follows Neo4j’s documented vector-index syntax. RushDB facts are drawn from RushDB’s own docs and feature pages linked throughout this site. Report a stale claim to hi@rushdb.com.
Implementation example
Store and recall agent memory without writing Cypher
This is the same store-then-recall path used across RushDB’s docs: create an index, write a record, search by meaning within a scoped filter.
from rushdb import RushDB
db = RushDB("RUSHDB_API_KEY")
db.ai.indexes.create({
"label": "MEMORY",
"propertyName": "output",
})
db.records.create(
label="MEMORY",
data={
"agent_id": "agent-42",
"kind": "decision",
"output": "Keep the free plan, but increase Pro onboarding limits after launch feedback.",
"status": "approved",
},
)
recall = db.ai.search({
"labels": ["MEMORY"],
"propertyName": "output",
"query": "What did we decide about Pro onboarding?",
"where": {"agent_id": "agent-42", "status": "approved"},
"limit": 5,
})
print(recall.data)Questions developers ask.
Related
Go deeper on the workflow.
Use case
AI Agent Memory Database
Store agent state, decisions, and tool output across sessions. Recall context by meaning and agent ID without a separate vector store or sync pipeline.
Open use caseUse case
Graph-Aware RAG Database
Combine semantic retrieval with explicit relationships and filters. Build a RAG knowledge base that can retrieve connected context.
Open use caseGuide
Knowledge Graph Memory
Learn how graph memory keeps documents, entities, citations, users, and decisions connected for AI agents and GraphRAG workflows.
Read guideGuide
AI Agent Memory
Learn how persistent AI agent memory stores decisions, tool output, entities, and relationships outside a single model session.
Read guideNext step