Matrix: von Synapse zu Dendrite

Di, 11. Januar 2022, Ralf Hersel

Bekanntlich handelt es sich bei Matrix um einen offenen Standard für interoperable, dezentralisierte Echtzeitkommunikation über IP, der sich in Kürze so beschreiben lässt:

  • Es existiert ein offener Standard in Form der Matrix-Spezifikation.
  • Matrix ist interoperabel, d. h. es ist so konzipiert, dass es mit anderen Kommunikationssystemen zusammenarbeiten kann.
  • Matrix ist dezentralisiert, d. h. es gibt keinen zentralen Punkt - jeder kann seinen eigenen Server hosten und hat die Kontrolle über seine Daten.
  • Matrix ist so konzipiert, dass es in Echtzeit funktioniert, was bedeutet, dass es ideal für den Aufbau von Systemen ist, die einen sofortigen Datenaustausch erfordern, wie z. B. Instant Messaging.

Da es sich bei Matrix um das Gesamtsystem, bzw. um das Protokoll handelt, gibt es auch Server- und Client-Komponenten. Clients gibt es diverse für Mobile- und Desktop-Plattformen. Die Standardimplementierung ist der Element-Client. Serverseitig gibt es eine alte und eine neue Implementierung. Der alte Server heisst Synapse, während der neue auf den Namen Dendrite hört.

Im Gegensatz zum Python-basierten Synapse ist Dendrite in Go geschriebener und soll eine effiziente, zuverlässige und skalierbare Alternative zu Synapse darstellen:

  • Effizient: Geringer Speicherbedarf mit besserer Grundleistung als Synapse (out-of-the-box).
  • Zuverlässig: Implementiert die Matrix-Spezifikation wie geschrieben, unter Verwendung der gleichen Testsuite wie Synapse sowie einer brandneuen Go-Testsuite.
  • Skalierbar: kann auf mehreren Rechnern laufen und schliesslich zu massiven Homeserver-Einsätzen skalieren.

Seit Oktober 2020 befindet sich Dendrite in der Beta-Phase. Die Entwickler empfehlen zu Testzwecken den Betrieb im Monolith-Modus mit einer PostgreSQL-Datenbank. Dendrite unterstützt Datenbankschema-Upgrades zwischen den Releases. Das bedeutet, dass man die Daten bei einem Upgrade von Dendrite nicht verlieren sollte.

Dendrite wurde noch nicht in der realen Welt getestet und wird daher anfangs fehleranfällig sein. Alle Federation APIs sind implementiert, aber die Präsenz- und Push-Benachrichtigungen fehlen in Dendrite noch völlig. Derzeit wird erwartet, dass Dendrite gut für kleine (10/100 Benutzern) Homeserver-Einsätze sowie P2P-Matrix-Knoten im Browser oder auf mobilen Geräten funktioniert. In Zukunft soll der Server in der Lage sein, über den Polylith-Modus wesentlich besser zu skalieren als der alte Synapse-Server. Ziel des Projektes ist es, dass im Laufe des Jahres 2022 die Mehrheit der Server auf Dendrite umgestellt werden.

Quelle: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2022-01-07