I'm building a personal project around London Overground lines (the Lea Valley routes)
I want to use the free feeds from National Rail as opposed to a third party.
At the moment, I'm consuming three feeds from the Rail Data Marketplace, all via Kafka:
- Darwin Real Time Train Information (Push) - the JSON Push
- Network Rail TD (TD_ALL_SIG_AREA)
- Network Rail Train Movements
Been playing with the Weaver Line and everything works well, and I'm getting genuinely good results - confirmed arrivals and departures, actual platform numbers, and real delay figures against the working timetable.
My question is about volume. All three topics appear to be full national firehoses, and I filter client-side down to 25 stations on one route. Measuring the Darwin topic over a six-minute window, I received 7,487 messages, of which 116 touched a Weaver station - about 1.5%. So I'm discarding roughly 98% of what I receive, continuously, 24 hours a day. TD looks similar in character.
That feels like the wrong shape, and I'd rather not be a needlessly heavy consumer of someone else's infrastructure. So....
1. Is any server-side filtering available on the RDM Kafka topics — by TOC, TIPLOC, or geographic area — or is client-side filtering simply the expected model?
2. For TD specifically, the legacy Network Rail STOMP feed offered per-area subscriptions rather than one combined topic. Is there an equivalent on RDM, or a route to requesting one? eg limiting to the Romford ROC areas covering West Anglia for Weaver
3. Is the "Darwin Real Time Train Information snapshots" API a better fit for a single-route application than streaming the Push Port - i.e. is it intended for exactly this case?
4. More broadly - is there a recommended pattern for small, single-route consumers? I may well be using these feeds in a way they weren't designed for.
Your steer on this much appreciated
Many thanks,
Trevor