Numbers that matter at decision time

JetGraph publishes typical single-machine loopback gRPC measurements for the decision-path APIs. These are not distributed-cluster benchmarks and are not a guarantee of production p99 on your hardware.

What we publish

The figures below match the engine integration reference: measured on a single machine over loopback gRPC. The same table is labeled there as a Rust debug build with typical latency (not a documented p50/p95/p99). Throughput figures are approximate (~).

Treat these as order-of-magnitude, single-node, decision-path numbers. Do not compare them to multi-node TPC-style graph benchmarks or to Neo4j causal-cluster throughput. Dataset size for the O(1) lookups is not a published parameter because those APIs do not scan the graph; neighbor APIs explicitly scale with degree.

Query latency — single machine

OperationTypical latencyNotes
GetNodeContext / fraud context0.05 msTwo DashMap lookups, O(1)
GetVelocityCount0.05 msPre-computed ring, O(1)
GetNeighborCount (HLL)0.06 msHyperLogLog estimate, O(1)
GetNeighbors (1 neighbor)0.5 msHot-layer + cold CSR merge
GetNeighbors (100 neighbors)0.9 msScales with degree
QueryEdgeWindow (1hr, ~12 edges)< 0.5 msBinary search + property lookup

Ingestion throughput

PathTypical rateNotes
BatchMutate streaming~35,000 ops/secSingle bidirectional gRPC stream; no per-event TCP round trip
CreateEdge unary gRPC~10,000 ops/secOne RPC per edge

Internal streaming notes in the engine manual also describe single-stream rates on the order of ~10k ops/sec at small batches versus ~30–50k at large batches (512–16384). Production ingest should be sized with your own harness.

Methodology checklist

  • Hardware — not published as a named SKU in the public website figures. Results are single-node, not a fleet.
  • Software — JetGraph engine over local gRPC; the published latency table is documented as a debug build in the integration reference, which is conservative relative to release builds.
  • Workload — microbenchmarks of named Feature/Graph APIs, plus streaming mutate. Not a mixed production fraud trace.
  • Concurrency — streaming figure is a single stream unless you run your own multi-stream test.
  • Statistic — “typical latency,” not a stated percentile.
  • Topology — single node, loopback. Optional standby replication is for durability/failover, not query scale-out.

What these numbers do not mean

  • They do not mean JetGraph is faster than Neo4j on arbitrary MATCH patterns.
  • They do not mean a 100-hop traversal is sub-millisecond.
  • They do not mean ingest of 35k/sec on a saturated disk snapshot interval with huge payloads.

Query-planning advice: documentation — performance & Cypher practices. Internals: architecture.