The Solution

Meet CognoDB: a graph brain that fits in your pocket.

Open-source graph database written in Go. Speaks Bolt (5.0, 5.4). Understands Cypher. If your code talks to Neo4j, it already talks to CognoDB — without the JVM, the daemon, the 17-second cold start, or the 3.5 GB resident footprint.

What's inside the binary
DriverPython / JS / Go / JavaBolt 5.xcognodb (single Go binary)Bolt serverprotocol 5.0 / 5.4Cypher parserMERGE · MATCH · CALLAuth / TLSQuery plannercost-basedTraversal enginevariable-lengthIndexesB-tree · UNIQUETransaction mgrMVCC · ACIDStorage APIpluggableSnapshotsJSONL dump

One process. Bolt in, pluggable storage out. Everything else lives in between.

Deployment shapes
Embeddedcognodb--storage memoryinside one agent7 ms cold startPer-agentA1A2A3A4N tiny graphs · one hostShardedrouters1s2s3--sharded --num-shards NEdgedevicedevicedevicedevicescp cognodb & go

The same binary becomes any of these by changing flags.

Six pillars

Every design choice flows from one premise: agent context graphs are small, numerous, ephemeral, shared, and everywhere. The engine had to be too.

One binary. Zero deps.

No JVM. No daemon. A single static Go executable. Cold start in 7 ms. Ship it the way you ship any other tool.

Light enough for the edge.

Tens of megabytes resident, not gigabytes. Run a dedicated graph per agent, per tenant, per session, even on a Raspberry Pi.

Built to scale out.

Every instance is cheap and self-contained. Scale horizontally to thousands of small isolated graphs instead of one heavyweight cluster.

Drop-in compatible.

Speaks Bolt 5.0/5.4 and Cypher. Every official Neo4j driver (Python, JS, Go, Java, .NET, Rust) connects unchanged.

ACID where it counts.

Atomic subgraph writes, MVCC, crash-safe local mode. Indexes and UNIQUE / EXISTS / NODE KEY constraints when you want them.

Pluggable storage.

In-memory, embedded local KV, or MongoDB today. Postgres, MySQL, Oracle, Cassandra on the roadmap.

Hello, context graph.

The shortest possible example: spin up an in-memory graph, write a fact, read it back. No JVM warm-up, no schema migration, no SDK install.

bash
# terminal 1 — start the engine
./cognodb --storage memory

# terminal 2 — talk to it with any Neo4j driver
python - <<'PY'
from neo4j import GraphDatabase
d = GraphDatabase.driver("bolt://localhost:7687", auth=("neo4j", "x"))
with d.session() as s:
    s.run("MERGE (u:User {id:'maya'})-[:KNOWS]->(:Topic {name:'graphs'})")
    for r in s.run("MATCH (u:User)-[:KNOWS]->(t) RETURN u.id, t.name"):
        print(dict(r))
PY