Das mit dem gespiegelten System ist sicher nicht so schlecht, denn dann kann man bei Programmschleifenfehler das aktuelle System mit zuvielen gleichzeitigen Zugriffen nicht in die Knie zwingen. Das Hauptproblem, wieso qando zeitweise nur Plandaten liefert. Das ist glaube ich auch eine Grundvoraussetzung für ein OpenData. Alles andere Wäre meiner Meinung nach ein programmiertechnischer Selbstmord.
Und alle, die jetzt kommen, beim Programmieren kommt es nicht vor, dass man sich auf einmal in einer Endlosschleife befindet, die haben offensichtlich noch nie ernsthaft programmiert.
Klar kommt das vor, und eine ordentliche Schnittstelle muss natürlich damit rechnen, dass sich die Clients nicht korrekt, geschweige denn nett verhalten.
Aber dafür gibt es geeignete und erprobte Ansätze. Einerseits wird man natürlich einen Cache einbauen, der die Ergebnisse der Abfrage ein paar Sekunden lang vorhält - das reicht schon mal um die Last am Server deutlich zu reduzieren bzw. besser vorhersehbar zu machen (z.B. kann man bei den Haltestellen-Echtzeitinfos dann davon ausgehen, dass innerhalb von x Sekunden maximal jede Haltestelle einmal abgefragt wird; darauf kann man dann die Serverleistung auslegen). Und dann wird man natürlich irgendeinen Zugangsmechanismus einbauen, der allzu häufige Abfragen blockiert (z.B. dass die selbe Anfrage von der selben IP nur einmal alle x Sekunden beantwortet wird).
Wenn man nett ist versieht man die ausgelieferten Daten noch mit einer Gültigkeitsdauer (die überraschenderweise mit der Cache-Dauer korreliert - wer hätte das gedacht), damit sich korrekt arbeitende Clients daran orientieren können und nicht mehr Anfragen stellen als nötig. Eine prognostizierte Ankunftszeit ändert sich ja (hoffentlich) nicht alle paar Sekunden komplett. Das kann man sogar dynamisch machen, z.B. wenn einmal die nächste Ankunft erst in 10 Minuten berechnet wurde zahlt es sich nicht aus, dass alle 10 Skeunden neu durchzurechnen und man kann den Wert länger aus dem Cache ausliefern, wohingegen - wenn der Zug bereits knapp vor der Haltestelle ist - 10 Sekunden den Unterschied zwischen '1' und 'boarding' ausmachen könnten.
Alles keine Hexerei.