Für ein Trading- oder AdTech-System, in dem eine verspätete Antwort als falsche Antwort zählt, arbeitet die richtige externe Firma im selben Bereich wie Ihre Deadline und kann zeigen, wie ihre Geschwindigkeitszahlen gemessen wurden. Ihre favorisierte Firma sollte Ihr laufendes System messen, bevor sie irgendetwas baut.
Keine Liste von Softwareentwicklungsunternehmen für niedrige Latenz passt zu jedem Auftraggeber, denn der Begriff umfasst Deadlines, die um den Faktor eine Million auseinanderliegen können. Bei Trading-Hardware kann er Dutzende oder Hunderte von Nanosekunden bedeuten. In einer App oder auf einer Webseite fühlt sich eine Antwort innerhalb von etwa einer Zehntelsekunde für die Person, die sie nutzt, bereits unmittelbar an. Die erste Frage ist also, wo Ihre eigene Deadline liegt.
Die kurze Antwort: Halten Sie Ihre Deadline und die zwei Punkte, zwischen denen sie gemessen wird, schriftlich fest, und fragen Sie jede Firma, welche der von ihr gebauten Systeme bereits in diesem Bereich in Produktion laufen. Bevor irgendjemand etwas baut, bezahlen Sie Ihre favorisierte Firma dafür, Ihr laufendes System zu messen, und behalten Sie ihren Bericht, wie auch immer Sie sich entscheiden.
Lesen Sie auch
Für Ihr System ist niedrige Latenz eine Deadline, gemessen zwischen zwei Punkten, die Sie benennen können. Deadlines fallen in vier grobe Bereiche:
Ein Produkt kann Teile in verschiedenen Bereichen haben. Ein Trader liest Kurse auf einem Bildschirm, während die Order, die dieser Trader sendet, auf ihrem Weg zum Handelsplatz womöglich eine viel engere Deadline einhalten muss. Halten Sie jede Deadline mit den zwei Punkten fest, zwischen denen sie gemessen wird. Der Bereich, in den sie jeweils fällt, sagt Ihnen, welche Art von Firma Sie anrufen sollten.
Dieser Artikel erstellt keine Rangliste von Firmen. Welche Art von Firma die richtige ist, hängt von Ihrem Bereich ab und von der Arbeit, die erledigt werden muss:
Viele Firmen passen in mehr als eine Kategorie, fragen Sie also, welche Art von Arbeit die Engineers, die Ihnen zugeteilt werden, bereits gemacht haben.
Der oben verlinkte Artikel über dedizierte Teams führt auf, was zu jeder Leistungszahl gehört, und enthält eine Checkliste, die Sie in eine Ausschreibung kopieren können. Die folgenden Fragen klären, wie die eigenen Zahlen einer Firma zustande gekommen sind.
Fragen Sie, wo die Uhr startet und wo sie stoppt. OPRA, die konsolidierte Trades und Quotes der US-Optionsbörsen veröffentlicht, startet ihre Uhr, wenn eine eingehende Nachricht „am Anwendungseingang der OPRA-Umgebung ankommt“, und stoppt sie, wenn die ausgehende Nachricht „am Anwendungsausgang der OPRA-Umgebung ankommt“. Die oben zitierte EU-Definition ist bei beiden Punkten ebenso präzise. Eine Zahl ohne benannte Endpunkte lässt sich nicht mit Ihren vergleichen.
Sehen Sie sich die langsamsten Antworten ebenso an wie die typische. In den von OPRA veröffentlichten Kennzahlen lag die Median-Latenz, also der mittlere Wert, im Januar 2024 bei 19,5 Mikrosekunden und im Februar bei 20,5. In denselben zwei Monaten fiel das 99. Perzentil, also die Zeit, die nur das langsamste 1 Prozent der Nachrichten überschritt, von 543,5 Mikrosekunden auf 57,5. Ein Bericht nur mit dem Median hätte fast keine Veränderung gezeigt.
Auch Durchschnittswerte verbergen die langsamen Antworten. Das Buch „Site Reliability Engineering“ von Google, 2016 bei O'Reilly erschienen, beschreibt einen Webdienst mit einer durchschnittlichen Latenz von 100 Millisekunden bei 1.000 Requests pro Sekunde, bei dem „1% der Requests leicht 5 Sekunden dauern können“. Verlangen Sie das 99. Perzentil jedes Pfads und, wenn Ihr System genug Requests verarbeitet, um es zu messen, das 99,9. Perzentil, das nur 1 von 1.000 Antworten überschreitet.
Prüfen Sie die Last hinter jeder Zahl. In STACs Überblick von 2020 sendet STAC-T0 seinen Testtraffic mit drei Raten. Die niedrigste ist „darauf ausgelegt, zu sehen, wie sich Systeme verhalten, wenn sie überwiegend im Leerlauf sind“, und die höchste, typischerweise nahe am Maximum dessen, was das getestete System bewältigen kann, dient dazu, „zu sehen, wie sich Systeme verhalten, wenn sie sehr stark ausgelastet sind“. Verlangen Sie Zahlen aus Ihrer eigenen Minute mit der höchsten Last oder aus einem Test, der sie nachbildet.
Fragen Sie, wie der Lasttest durchgeführt wurde. Viele Lasttest-Tools senden einen Request, warten auf die Antwort und senden erst dann den nächsten. Wenn das System ins Stocken gerät, hört ein solches Tool auf zu senden, sodass die Requests, die während des Stillstands eingetroffen wären, nie gemessen werden.
Gil Tene, der Autor des Lasttest-Tools wrk2, nennt diesen Effekt coordinated omission. In der Dokumentation des Tools, zuletzt geändert im September 2019, schreibt er, dass „Antworten mit hoher Latenz dazu führen, dass sich der Lastgenerator mit dem Server abstimmt, um Messungen in Phasen hoher Latenz zu vermeiden“. Sein Tool sendet Requests mit fester Rate und misst jede Antwort „ab dem Zeitpunkt, zu dem die Übertragung hätte erfolgen sollen“. Fragen Sie, ob das Tool der Firma so arbeitet oder wie seine Ergebnisse korrigiert wurden.
Fragen Sie, wo jeder Zeitstempel genommen wurde. Für Latenzen im Mikrosekundenbereich nennt STACs Überblick einen Benchmark mit Software-Zeitstempeln „die beste Option“. Außerdem warnt er, dass die kleinen, ungleichmäßigen Verzögerungen bei Software-Zeitstempeln „bei der Messung von Latenzen im Bereich von Dutzenden oder Hunderten von Nanosekunden einen erheblichen Fehler darstellen können“, und STAC-T0 nimmt seine Zeitstempel stattdessen in Hardware. Eine Firma, die Nanosekunden angibt, sollte zeigen können, wo ihre Hardware-Zeitstempel genommen wurden.
Wenn Sie noch nicht wissen, was falsch läuft, nur dass das System langsamer wirkt oder mehr kostet, als es sollte, beginnen Sie hier. Bezahlen Sie Ihre favorisierte Firma für eine Messung Ihres laufenden Systems mit festem Umfang, mit einem Bericht, der Ihnen gehört, wie auch immer Sie danach entscheiden. Vereinbaren Sie schriftlich, was die Firma installieren oder ändern darf, um ihre Messungen vorzunehmen, und wie ihre Tools danach entfernt werden.
Der Bericht sollte zeigen:
Für Trading-Systeme führt der oben verlinkte Artikel über langsame Orderausführung die vier Zeitstempel auf, die für jede Order zu erfassen sind. Im AdTech-Bereich behandeln die Artikel über Traffic-Spitzen und über DSP-Timeouts, was bei einer Lastspitze und für jede Exchange-Verbindung zu messen ist.
Beurteilen Sie die Firma nach ihrem Bericht. Wenn Ihre eigenen Engineers ohne die Firma danach handeln könnten, können Sie anhand echter Zahlen wählen, wer die Arbeit als Nächstes macht, ob diese Firma oder eine andere.
Wenn eine Firma eine neue Sprache vorschlägt, zeigt der unten verlinkte Artikel, wie Engineers prüfen, ob die Sprache die Ursache ist.
amBrain diagnostiziert langsame Trading- und AdTech-Systeme: Die laufende Plattform wird durchgängig vermessen, und der Bericht benennt, wohin die Zeit geht. Seine Arbeit im Trading umfasst die Entwicklung von Trading-Terminals, Order-Management-Systeme und die Börsenanbindung über das FIX-Protokoll.
Im Bereich AdTech arbeitet amBrain an DSP-Entwicklung, Real-Time-Bidding-Plattformen und Ad-Exchange-Engineering.
amBrain arbeitet in drei Formaten: vollständige Umsetzung, ein dediziertes Team oder in Ihr Team eingebettete Entwickler. Der Kunde behält das volle Eigentum an Produkt und Code, ausgenommen die wiederverwendbaren Komponenten von amBrain.
amBrain entwickelt seit 2019 Software.
Dieser Artikel ist keine Case Study und beschreibt keine Arbeit für Kunden. Er nennt keinen Latenzwert für irgendein System, das amBrain gebaut hat, und weder Preise noch Zeitpläne.
Fragen Sie amBrain oder jede andere Firma auf Ihrer Liste, was sie an Ihrem System zuerst messen würde, und unterziehen Sie jede Firma denselben Prüfungen.
Bringen Sie Ihre aktuelle Architektur und den Fehlerfall mit, der Sie beunruhigt - wir gehen ihn in einer halben Stunde gemeinsam durch.