- HTTP-basiertes langlebiges Streaming-Protokoll, das Daten zuverlässig an Webbrowser, mobile und native Clients überträgt
- Unterstützung eines einfachen und bewährten Ansatzes zum Erzeugen und Konsumieren von geordneten, wiederabspielbaren Streams
- Offset-basierte Wiederaufnahmefunktion, mit der nach Verbindungsabbrüchen ab der Unterbrechungsstelle fortgesetzt werden kann
- Einsetzbar für verschiedene Echtzeit-Szenarien wie Streaming von AI-Konversationen, Datenbanksynchronisation, kollaboratives Bearbeiten, Event Sourcing und Workflow-Ausführung
- Behebt die Probleme mit instabilen Verbindungen bestehender WebSocket- und SSE-Lösungen
- Refresh-sicheres Design ermöglicht die Wiederaufnahme an derselben Stelle auch nach Tab-Wechseln oder wenn die App in den Hintergrund wechselt
- URL-basiertes Teilen von Streams erlaubt mehreren Nutzern, denselben Stream gleichzeitig anzusehen
- Kostenoptimierte CDN-freundliche Architektur, mit der sich Millionen gleichzeitiger Verbindungen über einen einzigen Origin verarbeiten lassen
- Unterstützung für Synchronisation über mehrere Geräte und Tabs hinweg
- Eigenschaften des Protokolls
- Universal: In jeder Umgebung nutzbar, in der HTTP funktioniert
- Simple: Auf Standard-HTTP basierend, kein separates Custom-Protokoll erforderlich
- Resumable: Unterstützt offset-basiertes Lesen und Wiederaufnehmen
- Real-time: Echtzeit-Tailing über Long-Poll- und SSE-Modus möglich
- Economical: Effiziente Skalierbarkeit durch CDN-Caching
- Composable: Ermöglicht den Aufbau höherer Abstraktionsschichten (z. B. Electrics Echtzeit-Postgres-Synchronisations-Engine)
- Leistungsmerkmale
- Latenz unter 15 ms, Verarbeitung von Millionen gleichzeitiger Abonnenten und horizontale Skalierbarkeit
- Offset-basierte URL-Struktur zur maximalen Nutzung des CDN-Caches
- Beziehung zu Backend-Streaming-Systemen
- Ergänzt Messaging-Systeme zwischen Servern wie Kafka, RabbitMQ und Kinesis
- Durable Streams übernimmt die Client-Transportschicht
- Der Server übernimmt Authentifizierung und Datentransformation, Durable Streams verteilt diese dann HTTP-basiert an viele Empfänger
- Unterschiede zu SSE und WebSocket
- SSE/WebSocket stellen nur einfache Verbindungen bereit, während Durable Streams eine auf langlebigen Logs basierende Struktur bietet
- Vereint die Vorteile standardisierter Logs wie Offset-Wiederaufnahme, History-Replay und Unterstützung mehrerer Reader
- Flexible Implementierung
- Ein Server kann in jeder Sprache gebaut werden, solange HTTP-API, langlebiger Speicher und Offset-Verwaltung implementiert sind
- Node.js-Referenzserver sowie Konformitätstests und Benchmark-Tools werden bereitgestellt
- Wichtige Anwendungsfälle
- Echtzeit-Datenbanksynchronisation: Streamt Änderungen in Postgres an Web- und Mobile-Clients
- Event-Sourcing-Systeme: Zustandswiederherstellung auf Basis langlebiger Event-Logs
- Streaming von AI-Konversationen: LLM-Token-Streams lassen sich ohne Unterbrechung wiederaufnehmen
- Unter der Apache-2.0-Lizenz veröffentlichtes Protokoll, das vom Electric SQL-Team über 1,5 Jahre im produktiven Einsatz validiert wurde
Noch keine Kommentare.