In-memory graph engine, single-node decision latency
JetGraph stores the working graph in memory on one machine. Queries do not hit disk. Snapshots persist state. A warm standby is optional failover — not a distributed query fabric.
Layering
API layer
gRPC / HTTP2 :50051 Schema · Graph · Feature · BatchMutate
REST + Cypher :8080 POST /cypher · health · admin tooling
Bolt :7687 Compatible drivers · openCypher subset
↓ Tokio
Graph engine (Rust)
Concurrent writes · DashMap sharding
↓
Feature engine
Velocity rings · HyperLogLog · node context · timelines
↓
Storage
Compact neighbor store (one record per src–dst pair, TTL)
Node histograms · activity bitmaps
↓ background task
Persistence
Snapshot (binary) · configurable interval · fast recovery
Rust, Tokio, DashMap
The engine is a Rust binary (jetgraph-engine). Asynchronous I/O uses Tokio. Hot maps use DashMap so feature reads stay lock-friendly under concurrent ingest. There is no JVM garbage collector on the query path.
In-memory storage
Edges are compact records keyed by unique source–destination pairs (with TTL). Strings are dictionary-encoded; booleans bit-packed; timestamps stored as epoch microseconds. The design center is read-heavy, latency-sensitive fraud/risk workloads that fit in RAM.
Graph features
Velocity rings, HyperLogLog neighbor cardinality, and node risk context are maintained next to the adjacency data so authorize-time calls do not re-derive them from raw edges. See features.
Snapshots (not a query WAL)
The public product description is snapshot persistence: the engine writes a full state snapshot on an interval and recovers by loading the latest snapshot. Operational docs cover graceful shutdown, emergency snapshots under memory pressure, and standby file shipping. JetGraph is not marketed as a multi-master distributed graph database.
Docker
The documented demo image runs the engine plus optional segment-evaluator and pattern-miner binaries and an Admin UI. Ports: 8080 HTTP, 7687 Bolt, 50051 gRPC internally. Quick Start: /docs/quick-start.
What this architecture is not
- Not a horizontally sharded Cypher cluster
- Not a replacement for object storage or a warehouse
- Not full Neo4j GDS / Fabric
Clustering/HA as implemented: primary + standby.