PlattformWebMobil
Eine Echtzeit-Telemetrieplattform fürs Frontend
Ein typisiertes Frontend-SDK und eine Event-Pipeline, die mehrstufigen Nutzerabläufen Echtzeit-Sichtbarkeit gaben und die Erkennung von Störungen von Tagen auf Minuten verkürzten.
- Stack
- TypeScript · BFF · Event streaming · Columnar storage · Dashboards
Das Problem
Manche Nutzende sprangen mitten in einem langen, mehrstufigen Ablauf still ab. Wenn eine Anbindung an Dritte ausfiel, bemerkte es niemand: Die Diagnose bedeutete, verstreute Server-Logs von Hand zu lesen, und dauerte Tage. Jeder dieser Tage sind echte Nutzende, die nicht fertig wurden.
Der Ansatz
- Ein kleines, typisiertes SDK. Ein TypeScript-Tracker sammelte auf jedem Bildschirm und jeder Plattform dieselben Nutzeraktionsdaten, damit ein Event überall dasselbe bedeutet.
- Drosselung mit Sicherheitsventil. Das SDK bündelt Events und sendet sie nach einem kurzen Timer oder bei einer Größengrenze, je nachdem, was zuerst eintritt. Ein Request pro Klick lässt die Netzwerk-Threads des Browsers verhungern; Events länger zu halten riskiert Verlust beim Schließen des Tabs, deshalb nutzt das Verlassen der Seite
navigator.sendBeacon. - Ein BFF, der validiert. Die Bündel landen in einem Backend for Frontend, das das Schema gegen die TypeScript-Definitionen prüft, Zeitstempel auf Plausibilität kontrolliert, unerwartete Felder und personenbezogene Daten entfernt und Sitzungsmetadaten ergänzt. Der Vergleich des Backend-Urteils mit dem, was die Oberfläche zeigte, deckte Zustandsabweichungen zwischen beiden auf.
- Eine Streaming-Pipeline in spaltenorientierten Speicher. Streaming fängt Traffic-Spitzen ab, und spaltenorientierter Speicher beantwortet Aggregationen über sehr große Event-Mengen mit hoher Kardinalität in Millisekunden, wo zeilenorientierte Speicher kriechen.
- Leises Fehlerhandling. Fällt die Pipeline aus, hält das SDK einen kleinen Puffer lokal, und ein passiver Circuit Breaker pausiert das Senden. Es pingt den Server nicht an, um dessen Zustand zu prüfen, sondern wartet auf die nächste erfolgreiche Antwort.
Das Ergebnis
Die Zeit bis zur Erkennung einer Störung sank von Tagen auf unter 5 Minuten. Wenn ein defekter Schritt viele gescheiterte Versuche bedeutet, ist das der Unterschied zwischen einer Notiz im Postmortem und einem Fix noch am selben Morgen.