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.
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 ./memSingle-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.
# 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 ./shardsComing 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.
JSONB + LTREE backed pages, logical replication friendly.
InnoDB page store with row-locked transactions.
Enterprise installs with existing DBA tooling.
Wide-column, multi-region, eventually consistent fleets.
Cold tiers and snapshot archives.
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.