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 (~).
Query latency — single machine
| Operation | Typical latency | Notes |
|---|---|---|
GetNodeContext / fraud context | 0.05 ms | Two DashMap lookups, O(1) |
GetVelocityCount | 0.05 ms | Pre-computed ring, O(1) |
GetNeighborCount (HLL) | 0.06 ms | HyperLogLog estimate, O(1) |
GetNeighbors (1 neighbor) | 0.5 ms | Hot-layer + cold CSR merge |
GetNeighbors (100 neighbors) | 0.9 ms | Scales with degree |
QueryEdgeWindow (1hr, ~12 edges) | < 0.5 ms | Binary search + property lookup |
Ingestion throughput
| Path | Typical rate | Notes |
|---|---|---|
BatchMutate streaming | ~35,000 ops/sec | Single bidirectional gRPC stream; no per-event TCP round trip |
CreateEdge unary gRPC | ~10,000 ops/sec | One 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.