OTP is such a wonderful project! It's my go-to example of open source in government and it's so much more than a trip planning engine. For the country-wide transit app I'm working on (ok, it's a small country, but still), we use it as the database as well. We convert everything into GTFS(-RT), throw it into OTP, then have a fairly thin API layer that queries it via GraphQL and returns JSON for our app [0].
I also have to say the code is far more elegant and readable than what I expected from a 15 year old Java project. I had to fix a bug once and I figured it would take me at least a few hours to get my bearings in a codebase that size, but I managed to wrap my head around the core routing logic and fix the bug in an hour or so. The A* implementation for non-transit routing is such a good example of "enterprise code" done right.
I also have to say the code is far more elegant and readable than what I expected from a 15 year old Java project. I had to fix a bug once and I figured it would take me at least a few hours to get my bearings in a codebase that size, but I managed to wrap my head around the core routing logic and fix the bug in an hour or so. The A* implementation for non-transit routing is such a good example of "enterprise code" done right.
[0] a shitty diagram: https://gitlab.com/derp-si/ojpp-docs/-/wikis/oJPP-infra/diag...