← Back to home
Comparison · DevOps

GraphHopper vs NATS

A side-by-side editorial comparison of GraphHopper and NATS — release velocity, themes, recent moves, and the top alternatives to consider.

GraphHopper vs NATS: at a glance

FeatureGraphHopperNATS
SectorDevOpsDevOps
Velocity score0.07.5
Sparks · 30d01
Top themesrouting, openstreetmap, custom-models, navigationmessaging, open-source, jetstream, distributed-systems
Last editorial update1mo ago15h ago
WebsiteVisit →Visit →

What is GraphHopper?

GraphHopper finished moving vehicle profiles into custom models, then went back to OSM tags.

GraphHopper ships a major roughly every six months, with 11.0 in October 2025 the most recent. The architectural work happened in 9.0, which moved vehicle encoded values into the custom model, removed the built-in vehicle parsers' name property and the wheelchair parsers, allowed external encoded values in custom models, and blocked built-in custom model filenames. 10.0 then spent itself on storage layout — byte-based edge storage, a Map-based KVStorage API, wider georef fields — and 11.0 is almost entirely OSM tag interpretation: maxspeed=none handling, separate foot and bike road access, cycleway oneway combinations, toll parsing moved into a country-aware parser.

Read the full GraphHopper trajectory →

What is NATS?

NATS 2.15 introduces a desired-state reconciliation engine for JetStream, making cluster operations safe to run mid-flight.

NATS is in the RC phase for v2.15, which centers on a new desired-state metalayer for JetStream — a reconciliation engine that makes stream and consumer placement changes safe to execute during ongoing operations. Cancelling in-flight scale/move operations, changing replication factors mid-move, and peer-removing are all significantly safer. The parallel v2.14.7 release backports metalayer compatibility and fixes a set of JetStream data races and consumer state bugs identified during 2.15 testing.

Read the full NATS trajectory →

GraphHopper vs NATS: editorial side-by-side

G0.0

GraphHopper finished moving vehicle profiles into custom models, then went back to OSM tags.

◆ Current state

GraphHopper ships a major roughly every six months, with 11.0 in October 2025 the most recent. The architectural work happened in 9.0, which moved vehicle encoded values into the custom model, removed the built-in vehicle parsers' name property and the wheelchair parsers, allowed external encoded values in custom models, and blocked built-in custom model filenames. 10.0 then spent itself on storage layout — byte-based edge storage, a Map-based KVStorage API, wider georef fields — and 11.0 is almost entirely OSM tag interpretation: maxspeed=none handling, separate foot and bike road access, cycleway oneway combinations, toll parsing moved into a country-aware parser.

◆ Where it's heading

The configuration model is settled and the effort has moved to routing quality. Nearly every change in 11.0 is about reading OSM tags more faithfully for a specific mode — bicycle handling on living streets, foot instructions at junctions, MTB speeds on compacted surfaces, HGV tolls by country — which is the long tail of work that separates a routing engine that runs from one people trust. Turn restrictions are the recurring source of real bugs, appearing across 9.0, 10.0, 10.1 and 11.0 with via-way handling repeatedly needing correction. The new POST /navigate endpoint accepting a GraphHopper request is the one API-surface addition in this window.

◆ Prediction

Expect continued profile-level tuning driven by OSM tagging edge cases rather than architectural change, since three consecutive majors have narrowed in that direction. Turn restriction handling with multiple or overlapping via-ways is the most likely source of the next bugfix release, given its record across every version here.

N
NATS
DEVOPS
7.5

NATS 2.15 introduces a desired-state reconciliation engine for JetStream, making cluster operations safe to run mid-flight.

◆ Current state

NATS is in the RC phase for v2.15, which centers on a new desired-state metalayer for JetStream — a reconciliation engine that makes stream and consumer placement changes safe to execute during ongoing operations. Cancelling in-flight scale/move operations, changing replication factors mid-move, and peer-removing are all significantly safer. The parallel v2.14.7 release backports metalayer compatibility and fixes a set of JetStream data races and consumer state bugs identified during 2.15 testing.

◆ Where it's heading

The desired-state metalayer is an architectural addition that addresses a real operational risk: JetStream's previous behavior required careful sequencing of cluster topology changes to avoid data loss or inconsistent state. The pattern across recent releases — isolated stream read locks, constant-time removal from service maps, reduced client buffer flushing — shows a systematic performance and correctness pass across JetStream at high scale. NATS is moving toward the safety properties needed for production-critical stateful messaging.

◆ Prediction

v2.15.0 GA will likely ship within weeks of RC.2. The next cycle will probably extend desired-state semantics to more JetStream operations and potentially introduce observability tooling around reconciliation state, giving operators visibility into in-progress cluster changes.

Alternatives to GraphHopper and NATS

Other DevOps products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either GraphHopper or NATS.

See all GraphHopper alternatives → · See all NATS alternatives →

Recent activity from GraphHopper and NATS

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 1d agoNATSNATS 2.15.0-RC.2: desired-state metalayer for JetStream
  2. 1d agoNATSNATS 2.14.7: stability and metalayer backward compatibility
  3. 2d agoNATSNATS 2.14.7-RC.2: JetStream race condition fixes
  4. 6d agoNATSNATS 2.14.7-RC.1: lock contention reduction and metalayer prep
  5. 9d agoNATSNATS 2.15.0-RC.1: first formal release candidate
  6. 20d agoNATSNATS 2.14.6: JetStream read performance and Raft stability
  7. 11mo agoGraphHopper11.0 refines mode-specific OSM tag handling and adds POST /navigate
  8. 1y agoGraphHopper10.2 fixes an import failure on recent OSM turn restriction data
  9. 1y agoGraphHopper10.1 cherry-picks a via-way turn restriction fix
  10. 1y agoGraphHopper10.0 reworks edge storage layout and turn cost computation
  11. 2y agoGraphHopper9.1 is a bugfix release with no documented changes
  12. 2y agoGraphHopperVehicle profiles collapse into custom models in GraphHopper 9

Frequently asked questions

What is the difference between GraphHopper and NATS?

They serve adjacent needs but don't currently overlap on shipped themes. NATS is currently shipping more aggressively (velocity 7.5 vs 0.0), with 1 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is GraphHopper better than NATS?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. NATS is currently shipping more aggressively (velocity 7.5 vs 0.0), with 1 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other DevOps products to evaluate alongside.

What are the best alternatives to GraphHopper?

Top GraphHopper alternatives in DevOps are ranked by recent ship velocity. Browse the "GraphHopper alternatives" section above for the current picks, or visit /alternatives/graphhopper for the full list with editorial commentary on each.

What are the best alternatives to NATS?

Top NATS alternatives in DevOps are ranked by recent ship velocity. Browse the "NATS alternatives" section above for the current picks, or visit /alternatives/nats for the full list with editorial commentary on each.