Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using SIRI-ET and GTFS-RT TripUpdates in the same instance #6348

Open
leonardehrenfried opened this issue Dec 23, 2024 · 1 comment · May be fixed by #6363
Open

Using SIRI-ET and GTFS-RT TripUpdates in the same instance #6348

leonardehrenfried opened this issue Dec 23, 2024 · 1 comment · May be fixed by #6363
Labels
Roadmap Create an issue and mention your organization in the title and tag with RoadMap to share your plan Technical Debt

Comments

@leonardehrenfried
Copy link
Member

leonardehrenfried commented Dec 23, 2024

Right now it's not possible to run SIRI-ET and GTFS-RT TripUpdates in the same instance. This is not because there are fundamental incompatibilities between the protocols and down to OTP incurring some tech debt when SIRI was added.

This tech debt resulted in a lot of cyclic and otherwise strange dependencies.

In 2024 we undertook an effort to remove some of that tech tebt and the foundation was laid for running SIRI and GTFS-RT in parallel. Nevertheless, there was no final push because there wasn't anyone who needed this.

Situation right now

The dependencies between the core real-time classes is haphazard and historically grown. The SIRI and GTFS-RT have the responsibility to manage the snapshot and many dependencies are cyclic.

I tried to draw the current dependencies and it started to look very confusing so I focussed on the desired result instead.

I've investigated and have come up with the following class design.

Proposed class diagram

The core change are that the TimetableSnapshotManager, TransitLayerUpdater and TimetableSnapshot will be managed by Dagger and no longer by the updaters themselves. From this core principle we can derive the following class diagram:

TimetableSnapshotManager

Note that a single cyclic relationship between TimetableRepository and TransitLayer persists. It will be revisited later.

cc @fahrplaner @t2gran

@leonardehrenfried leonardehrenfried changed the title Running SIRI-ET and GTFS-RT TripUpdates in the same instance Using SIRI-ET and GTFS-RT TripUpdates in the same instance Dec 23, 2024
@BredeD BredeD added the Roadmap Create an issue and mention your organization in the title and tag with RoadMap to share your plan label Dec 27, 2024
@BredeD BredeD moved this to Wish list in Roadmap Dec 27, 2024
@BredeD BredeD added this to Roadmap Dec 27, 2024
@BredeD
Copy link
Contributor

BredeD commented Dec 27, 2024

From a product point of view, this issue is relevant when going from GTFS/GTFS RT to Transmodel or using Transmodel based data with GTFS. Added it to the Roadmap Wish List

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Roadmap Create an issue and mention your organization in the title and tag with RoadMap to share your plan Technical Debt
Projects
Status: Wish list
Development

Successfully merging a pull request may close this issue.

2 participants