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.