Echtzeit-Synchronisation für Web-Apps: Von HTTP zu Reactive Backends

Apps wie Google Docs oder Figma synchronisieren Änderungen in Echtzeit – ohne dass Sie auf „Aktualisieren“ klicken müssen. HTTP wurde nie für Echtzeit-Apps gebaut. Dieser Artikel erklärt, warum traditionelle Backend-Systeme bei kollaborativen Anwendungen versagen – und wie reaktive Backends das Problem lösen.

Auf einen Blick

  • HTTP ist Pull-basiert; der Server kann keine Updates initiieren – Echtzeit-Apps benötigen Push.
  • Reaktive Backends wie Convex bieten native Reaktivität, automatische Datenkonsistenz und keine manuelle Cache-Invalidierung.
  • Der Wechsel von HTTP zu reaktiven Backends reduziert die Komplexität für kollaborative Anwendungen deutlich.

Das HTTP-Problem: Request-Response ist nicht Echtzeit  

Browser kommunizieren über HTTP mit Servern. Dieses Protokoll ist seit 1991 die Grundlage des Internets – wurde aber nie für Echtzeit-Anwendungen entwickelt.

HTTP basiert auf einem einfachen Prinzip: Request-Response.

  1. Browser fragt: "Gib mir diese Daten"
  2. Server antwortet: "Hier sind die Daten"
  3. Verbindung wird beendet

HTTP Request-Response-Zyklus: Verbindung endet nach jeder Antwort

Warum ist das problematisch?  

FeatureFrüher (1990er)Heute
AnwendungsfallStatische Inhalte lesenGemeinsam Inhalte bearbeiten
InteraktionEinzelnutzer, keine Echtzeit-UpdatesMehrere Nutzer bearbeiten gleichzeitig
Entwickelt für✓ HTTP wurde dafür entwickelt✗ HTTP versagt hier fundamental

HTTP wurde für den ersten Fall entwickelt (statische Inhalte für Einzelnutzer). Für den zweiten Fall (kollaborative Echtzeit-Apps) versagt es fundamental.

Die fundamentalen HTTP-Einschränkungen:

  1. Einweg-Kommunikation: Nur der Client kann Anfragen initiieren, nie der Server
  2. Request-Response-Paradigma: Jede Interaktion muss vom Client gestartet werden (auch bei Keep-Alive-Verbindungen)
  3. Keine Server-Push-Benachrichtigungen: Der Server kann nicht aktiv sagen "Hey, hier gibt es Updates!"
  4. Polling notwendig: Der Browser muss ständig nachfragen, ob es Änderungen gibt
HTTP/1.1 und Keep-Alive

Seit HTTP/1.1 (1997) bleiben Verbindungen standardmäßig offen (Keep-Alive). Das spart Zeit beim Verbindungsaufbau, löst aber nicht das fundamentale Problem: Der Server kann trotzdem keine Nachrichten initiieren. Es ist immer noch Request-Response – nur über eine bestehende Verbindung.

Das Kern-Problem

HTTP ist Pull (Sie fragen nach). Echtzeit-Apps brauchen Push (der Server informiert Sie).


Inhaltsverzeichnis  


Ein Alltagsbeispiel: Die Einkaufsliste  

Situation: Sie und Ihr Partner haben beide eine Einkaufsliste auf Papier.

Sie schauen auf Ihre Liste

Auf Ihrer Einkaufsliste steht: "Milch kaufen"

Ihr Partner kauft die Milch

Er streicht "Milch" von SEINER Liste – aber IHRE Liste ändert sich nicht!

Sie kaufen AUCH Milch

Auf IHRER Liste steht immer noch: "Milch kaufen"

Ergebnis: Sie haben jetzt doppelt Milch, weil Ihre Listen nicht synchronisiert waren.

Genau dieses Problem haben Apps mit HTTP!

Das gleiche Problem bei Apps  

Das Einkaufslisten-Problem mit HTTP

Die drei Hauptprobleme  

1. Alte Daten

Sie sehen nicht, dass Ihr Partner die Milch bereits gekauft hat. Beide arbeiten mit unterschiedlichen Listen.

2. Keine automatische Info

Der Server kann nicht sagen: "Achtung, die Milch wurde gestrichen!" Sie müssen die App selbst neu laden, um Updates zu sehen.

3. Gleichzeitige Änderungen

Was passiert, wenn beide gleichzeitig einen Artikel streichen? Eine Änderung geht verloren. Das nennt man eine "Race Condition" – wie ein Wettrennen, bei dem nur einer gewinnen kann.

Wie lösen Entwickler dieses Problem heute?  

Entwickler nutzen drei Tricks, um HTTP trotzdem für Echtzeit-Apps einzusetzen. Alle drei erfordern erheblichen Implementierungsaufwand:

Fachbegriff: Polling

Technisch: setInterval() + fetch() – Der Browser fragt in regelmäßigen Abständen nach Updates.

So funktioniert es

Der Browser sendet automatisch alle paar Sekunden eine Anfrage: "Gibt es Neuigkeiten?"

Beispiel aus dem Alltag

Stellen Sie sich vor, Sie schauen alle 5 Sekunden auf Ihr Smartphone, um zu prüfen, ob eine neue Nachricht angekommen ist.

Code:

Probleme:

  • Verschwendung: Der Browser fragt auch, wenn sich nichts geändert hat
  • Verzögerung: Änderungen sehen Sie erst beim nächsten Nachfragen (bis zu 5 Sekunden später)
  • Server-Belastung: 1000 Nutzer = 1000 Anfragen alle 5 Sekunden

Das Kernproblem  

Alle drei Lösungen sind nur Notlösungen. Entwickler verbringen viel Zeit damit, die Schwächen von HTTP zu kompensieren, statt neue Features für die App zu entwickeln.


Die Lösung: Reaktive Backends  

Das neue Prinzip: Automatische Updates  

Stellen Sie sich vor, Sie haben eine gemeinsame Einkaufsliste auf dem Smartphone. Ihr Partner streicht "Milch" durch – und sofort sehen Sie auf Ihrem Handy die Änderung. Sie müssen nicht nachfragen, es passiert automatisch!

FeatureHTTP (altes System)Reaktive Backends (neues System)
Daten-UpdatesSie müssen ständig fragen: "Gibt es was Neues?"Der Server informiert Sie automatisch bei Änderungen
AnalogieAlle 5 Sekunden Briefkasten öffnenPush-Benachrichtigung auf dem Handy
EinkaufslisteDoppelt Milch gekauftAutomatisch synchronisiert

So funktioniert es – Beispiel: Gemeinsame Einkaufsliste  

  1. Sie öffnen die App und sehen die gemeinsame Einkaufsliste
  2. Der Server merkt sich: "Diese Person schaut auf die Einkaufsliste"
  3. Ihr Partner streicht "Milch" durch: Der Server schickt Ihnen automatisch die Änderung
  4. Ihre App aktualisiert die Liste von selbst – Sie sehen sofort die durchgestrichene Milch

Convex: Ein praktisches Beispiel  

Video abspielen
Lädt YouTube & setzt Cookies

Klick lädt YouTube (Datenschutz)

Was ist Convex?

Convex ist ein Backend-System, das reaktive Updates automatisch macht.

Kurz gesagt: Convex übernimmt Synchronisation, Updates und Verbindungsmanagement. Sie konzentrieren sich auf Ihre App-Logik.

Convex hat drei wichtige Funktionen:

  1. Automatisches Merken (Reactive Queries) – der Server weiß, wer welche Daten braucht
  2. Alles oder Nichts (Transactional Mutations) – Änderungen sind garantiert vollständig
  3. Immer verbunden (Real-time Subscriptions) – dauerhafte Verbindung ohne Programmieraufwand

Funktion 1: Automatisches Merken (Reactive Queries)  

Das Problem: Der Server muss wissen, wem er Bescheid sagen soll, wenn sich was ändert.

Die Lösung: Convex merkt sich automatisch, wer welche Daten anschaut.

Zurück zur Einkaufsliste: Wenn Sie und Ihr Partner die gemeinsame Liste öffnen, merkt sich der Server automatisch, wer sie anschaut – und wenn jemand "Milch" durchstreicht, werden nur diese beiden Browser informiert und aktualisiert, nicht alle anderen Nutzer der App.

Code-Beispiel  

Warum ist das gut?

Effizient: Nur die Browser, die die Einkaufsliste offen haben, bekommen Updates.

Kein Code nötig: Sie müssen nichts programmieren - Convex macht es automatisch.

Genau: Wenn Ihr Partner "Milch" durchstreicht, werden nur Sie und andere Personen mit dieser Liste informiert – nicht Personen mit anderen Listen.


Funktion 2: Alles oder Nichts (Transactional Mutations)  

Das Problem: Was passiert, wenn mitten in einer Änderung etwas schiefgeht?

Die Lösung: Bei Convex gilt: Entweder klappt alles, oder gar nichts.

Beispiel aus dem Alltag:

Stellen Sie sich eine Geldüberweisung vor:

  1. Geld von Konto A abbuchen
  2. Geld auf Konto B einzahlen

Was wäre schlimm? Wenn Schritt 1 klappt, aber Schritt 2 nicht. Dann ist das Geld weg!

Atomare Transaktion bedeutet:

  • Entweder passieren BEIDE Schritte
  • Oder KEINER der beiden Schritte
  • Nie nur einer!
Warum ist das wichtig?

Keine kaputten Daten: Sie haben nie "halbe" Änderungen in Ihrer Datenbank.

Sicher: Wenn etwas schiefgeht, wird alles automatisch rückgängig gemacht.

Automatisch: Sie müssen nichts programmieren - Convex macht es von selbst.

Code-Beispiel  

Die vier Garantien (ACID-Prinzip):

  • Atomicity (Unteilbar): Alles oder nichts
  • Consistency (Konsistent): Daten bleiben immer gültig
  • Isolation (Isoliert): Gleichzeitige Änderungen stören sich nicht
  • Durability (Dauerhaft): Erfolgreiche Änderungen sind permanent gespeichert

Funktion 3: Immer verbunden (Real-time Subscriptions)  

Das Problem: Wie kann der Server Sie sofort informieren, wenn sich was ändert?

Die Lösung: Convex hält eine dauerhafte Verbindung offen (wie ein Telefonat).

Das Geniale an Convex: Sie müssen sich um WebSockets nicht kümmern!

Convex richtet die offene Verbindung automatisch ein. Sie programmieren Ihre App normal, und Updates kommen automatisch.

Code-Beispiel  

Sie müssen NICHTS programmieren für:

  • WebSocket-Verbindung aufbauen
  • Verbindung überwachen
  • Neu verbinden bei Abbruch
  • Updates empfangen
  • Anzeige aktualisieren

Convex macht alles automatisch!

Das ist der große Vorteil

Bei normalen WebSockets: Sie müssen Hunderte Zeilen Code schreiben (Verbindung aufbauen, Abbrüche behandeln, Updates verarbeiten, etc.)

Bei Convex: Sie schreiben 2 Zeilen Code (useQuery und fertig). Den Rest macht Convex automatisch.

Zeitersparnis: Tage oder Wochen Arbeit werden zu Minuten!


Vergleich: Alt gegen Neu  

Schauen wir uns die Unterschiede in einer Tabelle an:

FeatureTraditionelles HTTPReaktive Backend (Convex)
DatenkonsistenzManuellAutomatisch
State ManagementClient-seitigBackend-gesteuert
Echtzeit-UpdatesPolling/WebSocketNative Reaktivität
Cache-InvalidierungManuellAutomatisch
Transaktionale SicherheitAnwendungslogikPlattform-garantiert
Development ComplexityHochNiedrig

Self-Hosting und Data Sovereignty  

Convex bietet neben der verwalteten Cloud-Infrastruktur auch Self-Hosting-Optionen für Unternehmen mit spezifischen Compliance-, Datenschutz- oder Governance-Anforderungen.

Das Open-Source-Backend kann in eigener Infrastruktur betrieben werden. Besonders für regulierte Branchen und DSGVO-konforme Architekturen ist die vollständige Kontrolle über die Dateninfrastruktur entscheidend.

Feature-Umfang: Das Open-Source-Backend enthält alle Core-Features (Queries, Mutations, Actions, Realtime-Subscriptions, Transaktionen).

FeatureConvex Self-Hosted Open-SourceConvex Managed Cloud
Queries, Mutations, Actions, Transaktionen
Identische Funktionalität
Identische Funktionalität
Realtime Subscriptions
Identische Funktionalität
Identische Funktionalität
Convex Dashboard
Enthalten
(vom Nutzer gehostet & verwaltet)
Enthalten
(vom Anbieter gehostet & verwaltet)
Streaming Import/Export
Manuell über
npx convex export/import
Verwaltete Konnektoren
(Fivetran, Airbyte)
Log-Aggregation & -Streaming
Benutzerdefinierte Lösung
(z.B. Loki, ELK)
Integriertes Log-Streaming
(Axiom, Datadog)
Exception Monitoring
Benutzerdefinierte Lösung
(z.B. selbstgehostetes Sentry)
Integrierte Sentry-Unterstützung
Health & Insights Dashboard
Benutzerdefinierte Lösung
(z.B. Grafana, Prometheus)
Integriertes Dashboard
Automatisierte Backups
Benutzerdefinierte Skripte
(z.B. convex-self-hosted-backups in S3)
Automatisierte Backups
(täglich/wöchentlich)
Point-in-Time Restore
Manueller Prozess
(aus verfügbaren Backups)
Verwaltete Point-in-Time-Wiederherstellung
Disaster Recovery
Volle Verantwortung des Nutzers
(Multi-Region-Setup)
Von Convex verwaltet
Horizontale Skalierung
Standardmäßig Single-Node
(erfordert Code-Modifikation)
Automatische, verwaltete Skalierung
Offizieller Support & SLA
Nur Community
(Discord, GitHub Issues)
E-Mail & Priority Support
(mit SLAs im Pro Plan)
Zertifizierungen
Verantwortung des Nutzers
(eigene Infrastruktur zertifizieren)
SOC 2, HIPAA, GDPR
(verifizierte Plattform)

DSGVO-Überlegungen bei Managed Cloud: Convex ist ein US-Unternehmen. Bei Nutzung der gehosteten Cloud-Lösung liegt eine Drittlandübermittlung vor, die einen Auftragsverarbeitungsvertrag (AVV) und Prüfung der Standardvertragsklauseln (Art. 46 DSGVO) erfordert. Für viele Anwendungen ist dies völlig ausreichend – kritisch wird es nur bei hochsensiblen Daten (Gesundheitsdaten, Finanzdaten) oder wenn Behörden/regulierte Branchen strikte On-Premise-Anforderungen haben.

Empfehlung: Für die meisten Web-Apps (B2B-SaaS, Content-Plattformen, E-Commerce) ist die Managed Cloud mit AVV DSGVO-konform nutzbar. Self-Hosting lohnt sich primär für: Banking/Healthcare, Behörden, Unternehmen mit expliziter On-Premise-Policy.

Fully Managed Backend-as-a-Service

Convex übernimmt die komplette Infrastruktur: Hosting, Skalierung, Monitoring, Updates und Disaster Recovery.

Vorteile:

Kein Ops-Overhead
Automatische Patches und Security Updates
Global verteilte Edge-Infrastruktur
Pay-per-use Pricing Model

Use Cases:

Rapid Prototyping, MVPs, SaaS-Startups ohne DevOps-Team, agile Projekte mit Time-to-Market-Fokus.

Der Umstieg: Von alt zu neu  

Wie kompliziert ist die Umstellung?  

Gute Nachricht: Sie müssen nicht alles auf einmal ändern. Sie können Schritt für Schritt umsteigen.

Schauen wir uns ein Beispiel an: Wie viel einfacher wird der Code?

Vorher: Mit dem alten System (HTTP)  

Was ist hier das Problem?

Über 50 Zeilen Code nur für eine einfache Anzeige

Ständige Anfragen alle 5 Sekunden (auch wenn sich nichts ändert!)

Kompliziert: Fehlerbehandlung, Rollback, etc. muss alles manuell programmiert werden

Unsicher: Kann trotzdem zu Problemen führen

Code-Beispiel  

Nachher: Mit Convex (viel einfacher!)  

Der Unterschied ist riesig!

70% weniger Code (15 Zeilen statt 50!)

Keine ständigen Anfragen mehr (kein Polling)

Automatisch sicher (atomare Transaktionen)

Fehlerbehandlung eingebaut (Sie müssen nichts programmieren)

Immer synchron: Alle Browser sehen garantiert dieselben Daten

Kurz gesagt: Statt Hunderte Zeilen Code zu schreiben, nutzen Sie useQuery und useMutation. Den Rest übernimmt Convex.

Code-Beispiel  

Geschwindigkeits-Vergleich (mit Zahlen!)  

Stellen Sie sich vor: 1.000 Personen nutzen Ihre App gleichzeitig.

Was passiert:

Jede Person fragt alle 5 Sekunden: "Gibt es was Neues?"

Das bedeutet:

  • 12 Anfragen pro Person pro Minute (60 Sekunden ÷ 5 = 12)

  • 12.000 Anfragen pro Minute bei 1.000 Personen

  • Auch wenn sich nichts ändert!

Verzögerung: 2-5 Sekunden bis Sie Änderungen sehen

Server-Belastung: Sehr hoch (ständiger Traffic)

Das Ergebnis

99,9% weniger Anfragen an den Server!

50x schneller (von 5 Sekunden auf 0,1 Sekunden)

Viel günstiger (weniger Server-Kosten)


Einschränkungen und Grenzen  

Internet-Verbindung erforderlich  

Reaktive Backends benötigen eine aktive Verbindung zum Server. Offline-first-Apps erfordern zusätzliche Architektur (lokales Caching, Sync-Konflikte).

Offline-Support

Reaktive Systeme sind primär für Online-Anwendungen konzipiert. Offline-Funktionalität erfordert zusätzliche Architektur-Layer (lokale Replikation, Conflict Resolution).

Diese Apps brauchen Offline-Funktionen:

Apps, die oft offline genutzt werden, Apps in Gebieten mit schlechtem Internet und mobile Apps, die immer funktionieren müssen.

Migrations-Aufwand  

Bestehende Systeme erfordern Refactoring. Empfohlen ist eine inkrementelle Migration.

Migrations-Strategie

Strangler Fig Pattern: Neue Features mit Convex, Legacy-System parallel betreiben, schrittweise Migration.

Vorteile: Kein Big-Bang-Risiko, kontinuierliche Wertschöpfung, Rollback-Möglichkeit jederzeit.

Offline-Support: Hybride Lösungen mit lokalem State-Management (LocalStorage, IndexedDB) und Sync-on-Reconnect sind möglich, erfordern aber zusätzliche Implementierung.


Fazit und Empfehlung  

Wann reaktive Backends nutzen?

JA: Echtzeit-Apps, kollaborative Tools, moderne Web-Apps

NEIN: Reine Offline-Apps, einfache statische Websites

Unsere Einschätzung: Für Echtzeit-Anwendungen sind reaktive Backends notwendig. Die Frage lautet nicht "ob", sondern "wann" Sie umsteigen.


Lassen Sie uns über Ihr Projekt sprechen

Standorte

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Wien
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Dieser Inhalt wurde teilweise mithilfe von KI erstellt.