-
Notifications
You must be signed in to change notification settings - Fork 128
Architecture v2
The full version:
Navitia is made up multiple components, some are in this repository, some are in others. In this repository we have core services of navitia:
-
Kraken
-
Jormungandr
-
ED
-
Tyr
The others services are:
-
Statistics logger and analyzer – valhalla and our declinaison of it: asgard
Tyr is the webservice used as backoffice for navitia, it handles a lot of things. It is not made to be exposed on internet as there no authentication on it.
It main features are:
- Users registration
- Coverages configuration
- Managing data integration
Tyr manage data integration in tyr but also on mimirsbrunn.
ED is the Data integration subsystem, while Tyr manage the data integration, ED is responsible for doing it. ED is composed of two databases and a few binaries.
The two database use PosgtreSQL with the PostGIS extension.
The cities
database only contains administrative regions (mostly cities) of the area covered by the services.
There is one ED
database per navitia's coverage, it contains all theorical data for it:
- Public transport topology and schedules
- Geographical data for the coverage such as administrative regions, ways and POIs.
The main binaries are:
- cities: reads an osm.pbf file to fill the cities database
- fusio2ed: reads a NTFS to fill the ED database
- gtfs2ed: reads a gtfs to fill the ED database
- osm2ed: reads a osm.pbf to fill the ED database
- ed2nav: reads the ED and cities database to build a data.nav.lz4 that will be read by kraken
These binaries are executed by tyr, and as such must be installed in the PATH of the user executing tyr-worker
Kraken is the core of the system. It is in charge of the coverage's data. Kraken provides these functionalities:
- journey planning for public transport and street network
- autocompletion
- schedules
- data referential
- disruptions
More technicals details can be found here
Jormungandr is the front web services, it provides every functionality of Navitia to the outside world. It handles authentication, authorisation and other boring stuff. It has to choose the best backend for every call, in most case there is only one: kraken.