← Back to all sparks
O

OpenTripPlanner

DEVOPS
Velocity0.0

Multimodal trip planning and transit routing engine

OpenTripPlanner finished a multi-year migration by deleting its REST API.

transit-routinggraphqlapi-removalgtfs-rtsirimemory-optimisation
Current state
OTP releases roughly twice a year and keeps its notes to a handful of notable items, deferring the rest to external changelogs. The recent line has been about API consolidation: 2.6.0 disabled the legacy REST API by default and made the new debug client the default, 2.8.0 removed the REST API outright, and 2.9.0's only listed change is a move to Java 25. Feature work in between went into SIRI extra calls, GTFS-RT platform and headsign changes, and transit filters on the GraphQL planConnection query.
Where it's heading
The GraphQL API is now the only API, and the deprecation of plan in favour of planConnection back in 2.7.0 shows the same consolidation happening inside it. Alongside that, the real-time surface keeps growing — SIRI Lite, extra calls, GTFS-RT support for new and replacement trips — while graph build memory consumption gets cut release over release. The 2.9.0 release being a Java version bump and nothing else suggests the API work has run its course.
Prediction
With the REST removal done and the runtime moved to Java 25, the next release is more likely to concentrate on real-time data handling than on API surface.

Recent moves

  1. 4mo ago

    Runtime moves to Java 25

    The only notable change listed is the Java 25 update, which is a deployment requirement for anyone upgrading. A quiet release after two that reshaped the API surface.

    View source ↗
  2. 10mo ago

    Bugfix release: GraphiQL error and flex trip validation

    Four corrective changes, led by removing a harmless but visible error in GraphiQL. Cleanup after the REST removal in 2.8.0.

    View source ↗
  3. 11mo ago

    REST API removed; GraphQL becomes the only interface

    ⚡ SPARK

    The endpoint of a migration that ran through 2.6.0 and 2.7.0. Removing REST rather than leaving it disabled forces every remaining integration onto GraphQL, and the real-time additions in the same release show where the freed attention went.

    View source ↗
  4. 1y ago

    Raptor-backed via search; plan deprecated for planConnection

    Via search gets a proper Raptor implementation and reaches both the Transmodel and GTFS GraphQL APIs. Un-deprecating planConnection while deprecating plan is the in-API half of the consolidation that REST removal completed a release later.

    View source ↗
  5. 1y ago

    Fares V2 support, GBFS geofencing and lower memory use

    Improved Fares V2 and GBFS geofencing support alongside a 5-8% memory reduction and better timeout handling. Notable also for dropping legacy from the GraphQL API's name — the first public signal of which interface would survive. The feed's date for this entry runs ahead of the release's own September 2023 label.

    View source ↗
  6. 1y ago

    Legacy REST API disabled by default; new debug client promoted

    The step that made REST removal possible: disabled by default, with the new debug client promoted and the old one moved to classic-debug. ISO-8601 datetimes in GraphQL itinerary responses landed in the same release.

    View source ↗