
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.
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.rocksMeine 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 ...





