Die Herausforderung

In einer Bildungsplattform sind zeitnahe Benachrichtigungen entscheidend. Wenn ein Lehrer eine neue Aufgabe veroffentlicht, mussen die Schuler sofort informiert werden. Unser ursprungliches System war polling-basiert — der Client prüfte alle 30 Sekunden auf neue Benachrichtigungen.

Architekturuberblick

Wir haben das System von Grund auf mit einer WebSocket-basierten Architektur neu aufgebaut:

  • WebSocket Gateway: Ein Node.js-Server mit Socket.io
  • Event Bus: Ein Redis-basiertes Pub/Sub-System
  • Benachrichtigungsdienst: Ein Backend-Service fur Erstellung, Speicherung und Weiterleitung
  • Angular Signal Store: Ein clientseitiger reaktiver Store

Skalierung

Mit Tausenden gleichzeitiger Verbindungen reicht ein einzelner WebSocket-Server nicht aus. Wir verwenden den Redis-Adapter fur Socket.io, um Ereignisse uber mehrere Serverinstanzen zu synchronisieren.

Das neue System liefert Benachrichtigungen in durchschnittlich unter 100ms — eine 300-fache Verbesserung gegenuber dem alten Polling-Ansatz.