We launched the new version of Realtime Trains three months ago yesterday which was the first stage in a series of major upgrades to the service. Today marks stage two in that series - it’s a much larger change than the last one, but most of it isn’t visible.
I covered much of the detail in the post two weeks ago but a few changes have happened in the intervening period, so here’s a rundown on the visible changes.
New geography engine
A new geography engine to infill schedules with additional timing points on the day of travel is now enabled. Many more services than before will now show en-route distances - if you see a service without distance values, or they are wrong, please report it. Timings which are infilled are now highlighted in grey in the WTT columns.
This will affect services that depart from tomorrow onwards (20 January).
New TD Handler
One of the common problems with the old processor was ‘Approaching’/‘Arriving’/‘At platform’ notifications on locations hanging on long after the service has departed. We’ve fixed around 15 bugs to fix this in most instances. If you see a service with these statuses still hanging on, again please report it.1
This affects services from approximately 1450 today (19 January).
Improvements to freight services
Some users will note that most services operated by GB Railfreight are not obfuscated in the data feeds and show their actual headcode. Realtime Trains up until now showed their services as obfuscated until the point of ‘call’ from the TRUST feed. We now unobfuscate those services the day before their operation. We will be preparing a further update to not obfuscate those services at any point in time soon.
This will affect services that depart from tomorrow onwards (20 January).
New Message Queue Infrastructure
The most obvious change here will be a substantially increased resilence from faults within our control. These are somewhat rare compared to issues with the open data platform itself with several issues in the last week, but we felt it best to mitigate these issues nevertheless.
If either of the Train Movement (TRUST) or Train Describer (TD) feeds goes down, the limited real-time data banner will appear as has been seen frequently over the new year. If both feeds go down, a new “no real-time data” banner will now appear.
New Status Page
A shiny new addition to the status page has been made, adding details about each Train Describer area. There are occasions where just a single area may become unavailable but the entire feed remains stable and this page will go some way to highlight it. This is also provided as a service to other open data developers to indicate our view of the world as it stands in real-time.
Summary changelist
Processor
- Update to Java 11, and update all packages to their latest available versions
- Replace MQ subscription architecture to be based on Apache Camel
- New geography engine
- New TD step handler
- New VSTP messaging handler
- Support for reformatted NROD messages from our internal service
- Re-work usage of Redis with increased use of expiring keys
- Replace Redis library
Offsetstore
- New extract format for RTT processor
- Replace logic for calculating Approaching/Arriving
Website
- Support for reworked VSTP service handling (UIDs no longer prefixed with O)
- Support for reworked database handling in processor
- Bugfix: location typeahead on simple and detailed modes
- Remove TfL Trackernet from status and data sources
- Add handling for new TD status on the status page
-
We are aware of an issue at Wester Hailes with passing services at the time of writing. ↩︎