Bedingungsgesteuertes Aufzeichnen ist schnell beschrieben: Überschreitet dieses Signal jenen Wert, wird ein Fenster mit etwas Vorlauf aufgezeichnet. Die erste Implementierung wertete die Bedingung auf dem zentralen Server gegen den eingehenden Datenstrom aus. Das funktionierte – und war auf drei Arten falsch, die sich erst im Produktivbetrieb zeigen.
Drei Arten, wie ein zentraler Trigger scheitert
- Latenz. Jede Verzögerung bei der Datenaufnahme bedeutet, dass die Entscheidung nach dem Transienten eintrifft. Eine kurze Spitze sollte genügen, um einen Trigger auszulösen; zentral ausgewertet kann sie zu spät ankommen.
- Zeitstempel. Eine Entscheidung auf Basis der Ankunftszeit ist eine Entscheidung nach der Uhr des Netzwerks. Die Fenster zweier Maschinen lassen sich nicht vergleichen, wenn die Grenzen jedes Fensters davon abhängen, wie stark der Uplink gerade ausgelastet war.
- Verfügbarkeit. Ein Trigger, der in einem Browser-Tab oder einem Backend-Prozess lebt, endet, sobald einer von beiden neu startet. Nach einem Deployment um drei Uhr morgens schaltet niemand die Trigger erneut scharf.
Das Edge-Design
Ein scharf geschalteter Trigger wird als Konfiguration auf die EdgeBox übertragen. Die Trigger-Engine – Vergleichsoperatoren, ALL/ANY-Verknüpfung, Vorlauf, Nachlauf, Sperrzeit und maximale Dauer – wertet ihn gegen die lokalen Rohdaten aus, mit den Zeitstempeln, die die Erfassung den Daten selbst gegeben hat. Auslöse- und Rücksetzereignisse geben diese Zeitstempel weiter, und der Vorlauf stammt aus den jüngsten Daten, die auf der Box vorgehalten werden.
Der offene oder geschlossene Zustand des Triggers steht außerdem als gewöhnliches Signal zur Verfügung, sodass sich eine nachgelagerte Berechnung, auch das Gate einer KI-Pipeline, wie an jeden anderen Eingang daran binden kann.
Was sich geändert hat
Eine Serie von Trigger-Fenstern in einem Schleifzyklus wurde lückenlos zu Edge-Zeitstempeln ausgelöst und zurückgesetzt – ohne geöffneten Browser und auch über ein Redeployment des Servers hinweg. Fenster werden jetzt auf der Zeitbasis der Daten geschnitten, und ein Fenster wird erst geschlossen, wenn alle seine Daten angekommen sind.