Storage backends

One graph engine. Many places to put the bytes.

CognoDB separates the graph engine (Bolt, Cypher, traversal, transactions) from where data lives. Switch backends with a single flag. No code change, no Cypher change, no driver change.

Pluggable storage architecture
Your appPython · JS · Go · JavaNeo4j driver, unchangedBOLT 5.xCypher · MERGE · MATCHCOGNODB ENGINECypher parserQuery plannerTraversal engineTransaction · MVCCCache · IndexesSTORAGE APIIn-memoryephemeral · 7 ms coldtests · agents · CILocal KVembedded · durablesingle-file · edgeMongoDBmanaged clustermulti-tenant fleetsComing soonPostgres · MySQLOracle · CassandraS3 · Redis

Your app talks Bolt. The engine talks to whichever backend you configured — switch with a single flag.

Supported today

Three first-class backends ship in the binary. Pick one per process; run as many processes as you like, each with a different backend.

In-memory

--storage memory (default)

Zero-config, blazing fast. Perfect for ephemeral agent runs, tests, CI, and notebooks.

  • 7 ms cold start, sub-millisecond local queries
  • State dies with the process — by design
  • Snapshot to JSONL with cognodb-dump if you need to persist
  • Use when: per-task scratch memory, evals, replayable workflows

Local (embedded KV)

--storage local --data-dir ./mem

Single-file durable store. Survives restarts. No external service required.

  • 411 ms cold start, ACID writes, crash-safe
  • One process, one directory, copyable anywhere
  • Ideal for edge devices, laptops, per-agent durable memory
  • Use when: persistent agent memory without infra overhead

MongoDB

--storage mongo --mongo-uri ...

Plug CognoDB's graph engine on top of a managed Mongo cluster you already operate.

  • Graph semantics on top of Mongo's replication and backups
  • Multi-tenant: one Mongo cluster, thousands of agent graphs
  • Reuse existing ops, IAM, monitoring, snapshots
  • Use when: production fleets sharing a managed datastore

Switch backends with one flag

The Bolt port, the Cypher you write, and your driver code are identical across backends. Only the launch flag changes.

bash
# ephemeral, in-memory
./cognodb --storage memory

# durable, single embedded file
./cognodb --storage local --data-dir /var/lib/cognodb

# backed by an existing Mongo cluster
./cognodb --storage mongo \
  --mongo-uri "mongodb+srv://user:pass@cluster.mongodb.net" \
  --mongo-db cognodb

# horizontally sharded across N processes (any backend)
./cognodb --sharded --num-shards 8 --storage local --data-dir ./shards

Coming soon

We're extending the storage API to first-class enterprise datastores. The graph engine, query language, and Bolt surface stay identical — only the bytes move.

PostgreSQL
Roadmap

JSONB + LTREE backed pages, logical replication friendly.

MySQL
Roadmap

InnoDB page store with row-locked transactions.

Oracle
Roadmap

Enterprise installs with existing DBA tooling.

Cassandra
Roadmap

Wide-column, multi-region, eventually consistent fleets.

S3 / object store
Roadmap

Cold tiers and snapshot archives.

Redis
Roadmap

Ultra-low-latency shared scratch graphs.

How to choose

  • Prototyping or per-task scratch memory? In-memory.
  • Per-agent durable memory on a laptop, edge box, or container? Local.
  • Fleet of agents sharing managed infra? MongoDB (today), Postgres/Cassandra (soon).
  • Mixed workloads? Run different processes with different backends — they all speak the same Bolt.