Long Polling schlägt WebSockets: Eine praktische Anleitung für skalierbare Echtzeitsysteme
Das Inferable-Team entschied sich beim Aufbau eines skalierbaren Echtzeitsystems mit Node.js und TypeScript für HTTP Long Polling statt WebSockets. Angesichts der Herausforderungen, dass Hunderte von Worker-Knoten Echtzeit-Job-Updates benötigen und Agents Echtzeit-Zustandsynchronisierung benötigen, erwies sich Long Polling als überraschend effektiv. Durch das Offenhalten von HTTP-Verbindungen, bis neue Daten ankommen oder ein Timeout erreicht wird, wurden die Komplexitäten von WebSockets wie Authentifizierung, Observability und Infrastrukturkompatibilität vermieden. Der Artikel beschreibt die Implementierung im Detail, einschließlich Datenbankoptimierung, Fehlerbehandlung und Best Practices wie obligatorisches TTL, clientseitig konfigurierbares TTL und sinnvolle Datenbankabfrageintervalle. Die Wahl beruhte auf der Notwendigkeit der Kernproduktkontrolle über den Nachrichtenübermittlungsmechanismus, null externen Abhängigkeiten und der einfachen Verständlichkeit und Modifizierbarkeit. Alternativen wie ElectricSQL werden kurz diskutiert, wobei Szenarien hervorgehoben werden, in denen WebSockets vorzuziehen sein könnten.