Mercure

Mercure

Real-time Made Easy

Mercure ist ein Echtzeit-Webprotokoll, das bidirektionale Kommunikation zwischen Webanwendungen und Servern ermöglicht, wodurch Echtzeit-Updates in Webanwendungen erleichtert werden. Es bietet Vorteile wie niedrige Latenzzeiten, Skalierbarkeit, Unterstützung für verschiedene Plattformen und eine einfache Integration in bestehende Systeme über eine benutzerfreundliche API.

Mercure im Einsatz bei TYPONiels

Es wurden keine weiteren Informationen zum Einsatz von Mercure bei TYPONiels hinterlegt.

Services & ToolsBackend
Profesional
Geschäftsfeld
28 Tags

Was ist Mercure?

Mercure ist ein offenes Protokoll und eine zugehörige Server-Implementierung für Echtzeit-Kommunikation zwischen Server und Clients auf Basis von Server-Sent Events (SSE). Es wurde entwickelt, um Live-Updates in Webanwendungen zu ermöglichen, ohne auf WebSockets oder Polling zurückgreifen zu müssen. Mercure ist als IETF-Draft standardisiert und bietet Authorization, Topic-basiertes Publish/Subscribe sowie automatische Reconnects im Falle von Verbindungsabbrüchen. Das Symfony-Projekt hat Mercure maßgeblich mitentwickelt, und es ist tief in das API Platform Framework integriert.

Architektur & Funktionen

Die Mercure-Architektur trennt Hub (Server) und Publisher (Anwendung) klar voneinander. Der Hub ist ein schlanker Go-Server (Caddy-Plugin), der SSE-Verbindungen von Clients verwaltet und eingehende Publish-Anfragen (HTTP POST) an alle abonnierten Clients weiterleitet. Publisher senden neue Daten per HTTP POST an den Hub, der die Nachricht sofort an alle Subscriber des jeweiligen Topics verteilt. Die Authentifizierung erfolgt über JSON Web Tokens (JWT), die sowohl Publisher als auch Subscriber autorisieren und den Zugriff auf private Topics steuern. Topics sind freie URIs, typischerweise Ressourcen-URLs.

Einsatzgebiete

Mercure ist ideal für Anwendungen, die Live-Updates benötigen, aber keine bidirektionale Kommunikation erfordern: Benachrichtigungen, Live-Dashboards, Echtzeit-Suchergebnisse, Chat-Statusupdates, kollaborative Dokumentenbearbeitung oder Bestellverfolgung. In API-First-Architekturen ergänzt Mercure REST- oder GraphQL-APIs um einen Push-Kanal, sodass Clients keine Polling-Intervalle implementieren müssen. Das Protokoll ist bewusst einfach gehalten und erfordert clientseitig nur die native EventSource-API des Browsers, ohne zusätzliche JavaScript-Bibliotheken.

Integration & Vorteile

Mercure ist nativ in API Platform (PHP/Symfony) integriert und kann mit jeder Programmiersprache auf Publisher-Seite genutzt werden. Docker-Images und Helm-Charts für Kubernetes sind verfügbar. Gegenüber WebSockets bietet Mercure den Vorteil, dass SSE über HTTP/2 nativ multiplexed wird und durch Proxies und Firewalls weniger restriktiv behandelt wird. Das JWT-basierte Autorisierungsmodell ermöglicht feingranulare Zugriffskontrollen auf Topic-Ebene. Die Caddy-basierte Hub-Implementierung skaliert über horizontales Sharding und unterstützt Redis als Shared-State-Backend.

Die Heimat von ... Mercure

Informationen zu Mercure lassen sich doch am Besten an offizieller Stelle finden.

mercure.rocks

Meine Links zu Mercure

Einige lesenswerte Ressourcen, die mir bei beim Einsatz von Mercure geholfen haben.

Passend zu Mercure

Folgende Technologien & Methoden könnten dich auch interessieren ...