This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Architecture

Learn more about OSRD architecture

Architecture documents are meant to help understand how OSRD works overall.

1 - Data-flow

OSRD’s data-flow diagram

Data-flow diagram

2 - Services

OSRD’s services architecture

It is a multi-service architecture where several software components interact with each other. This choice was made to ensure the modularity of the code and to guarantee the exploitability of certain OSRD services by external applications.

  • Valkey is configured as maxmemory-policy=allkeys-lru (documentation)
  • Osrdyne has multiple drivers to support:
    • k8s
    • docker
    • process compose
  • The gateway supports multiple authentication providers:
    • OpenID Connect (OIDC)
    • Bearer token
    • Mock (for development purpose)
  • Some editoast endpoints requires an InfraCache object which make them stateful. These endpoints are only used in the editoast-stateful service. Doing so most endpoints are run by a scalable service.

Coming soon:

  • Adapt editoast-stateful so editoast is fully scalable.

Services architecture