Background
Sonntag, 19. April 2026

Das Mastodon-Plugin als Fediverse-Brücke


Einleitung Das ist ein kleines Resümee aus dem aktuellen Entwicklungsstand von FlatPress und der Mastodon-Integration.
FlatPress-IndieWeb.png
Mastodon-Plugin als Fediverse-Brücke | generiert mit DALL-E

Bei der Weiterentwicklung stand für mich die Reaktionszeit von FlatPress 1.5 Stringendo mit mehreren Tausend Einträgen und Kommentaren im Mittelpunkt. FlatPress hat derzeit mit dem Mastodon-Plugin eine konkrete Fediverse-Brücke. Trotz des großen Funktionsumfangs verbiegt das FlatPress-Projekt seinen Kern nicht für die Mastodon-Integration. Das ist aus architektonischer Sicht ein großer Pluspunkt. FlatPress bleibt dem eigenen Grundsatz treu: eine einfache, leicht zu installierende Blogging-Engine, die mit Dateien statt mit einer Datenbank arbeitet.

Die Mastodon-Anbindung sitzt als Plugin daneben und nicht als Zwangslogik im Kern. Derzeit arbeite ich noch am Feinschliff. Die zentrale Herausforderung liegt weniger in fehlenden Funktionen als im requestbasierten Betriebsmodell von FlatPress. FlatPress besitzt in dieser Form keinen echten Hintergrunddienst und keinen dauerhaft laufenden Worker-Prozess. Die automatische Synchronisation des Mastodon-Plugins hängt an normalen Webanfragen. Im Code des Plugins ist klar zu erkennen: Der automatische Lauf wird nur bei regulären Requests angestoßen, nicht bei POST-Anfragen und nicht bei CLI-Ausführung. Wenn nach der geplanten Uhrzeit niemand die Seite aufruft, passiert zunächst nichts; die Synchronisation verschiebt sich auf den nächsten passenden Seitenaufruf.

Für kleine bis mittlere Blogs ist das ein pragmatischer Ansatz. Für tiefere Föderation oder stark anwachsende Kommunikationslasten ist es jedoch eine harte Grenze. Jede Kommunikation mit Mastodon, jeder Medien-Upload, jeder Import eines Antwortbaums und jeder zusätzliche Dateizugriff verbraucht Zeit innerhalb derselben PHP-Anfrage, die gleichzeitig auch noch eine Seite ausliefern soll. Auf schnellen Systemen kann das unauffällig bleiben. Auf Shared Hosting, langsamen Datenträgern oder bei instabiler externer Erreichbarkeit kann die Render- und Antwortzeit aber deutlich leiden oder an Timeout-Grenzen stoßen.

Gerade hier passt der Performance-Fokus von Stringendo gut zum Problemfeld. Wenn FlatPress heute stärker mit externen Diensten interagiert, dann werden kurze Antwortzeiten, robuste Dateioperationen, lokales Caching und sparsamer I/O nicht zum Luxus, sondern zur Voraussetzung. Die Codebasis zeigt bereits, dass ich genau dort investiert habe. Trotzdem bleibt die grundsätzliche Beschränkung bestehen: Solange Hintergrundarbeit an normale Requests gekoppelt ist, teilt sie sich Ressourcen mit der eigentlichen Seitenauslieferung.

Für Crawler, Monitoring-Systeme oder KI-Bots ist es im Zweifel egal, ob FlatPress eine Seite in 200 Millisekunden oder in deutlich längerer Zeit ausliefert. Aus Sicht von FlatPress kann aber genau ein solcher regulärer GET-Aufruf den fälligen Synchronisationslauf anstoßen. Das nutzen wir bereits im Newsletter-Plugin, um den monatlichen Newsletter zu versenden. Solange aufwendige externe Kommunikation innerhalb normaler Webanfragen stattfinden muss, wird es immer Grenzen bei Last, Reaktionszeit und Hintergrundverarbeitung geben. Für persönliche und mittlere selbstgehostete Blogs ist der jetzige Ansatz dennoch sehr praktisch. Für einen breiteren, allgemeingültigen IndieWeb-Support wären langfristig zusätzliche Protokolle und eine vom Seitenaufruf entkoppelte Hintergrundverarbeitung notwendig. Ich befürchte jedoch, FlatPress eignet sich nicht für einen allgemeingültigen IndieWeb-Support.

Downloads und weitere Informationen

  1. Fraenkiman

    Donnerstag, 30. April 2026 um 02:31 Uhr

    Der nachgelagerte Löschsynchronisationslauf entwickelt sich im Plugin zu einem Monster. Das liegt daran, dass es auf Mastodon verschachtelte Reply-Strukturen gibt, auf FlatPress nicht.

  2. Fraenkiman

    Dienstag, 5. Mai 2026 um 02:38 Uhr

    Im aktuellen Entwicklungsstand, hat das Plugin über 300 PHP-Funktionen. Das sind mehr als alle mir bekannten Plugins zusammen haben. Es wird langsam unübersichtlich Und der Smoke-Test ist nicht viel kompakter.

  3. Fraenkiman

    Donnerstag, 7. Mai 2026 um 11:07 Uhr

    Die state-Datei wird in meinen Simulationen recht groß und wird bei jeder Webanfrage geladen. Möglicherweise lässt sich das etwas optimieren. Und wieder ein KVP.

  4. Fraenkiman

    um 18:04 Uhr

    Es sieht so aus, dass ich neue Hooks benötige. In etwa so:

    entry_saved($entry_id, $entry, $old_entry, $is_update)
    entry_deleted($entry_id, $old_entry)
    comment_saved($entry_id, $comment_id, $comment, $old_comment, $is_update)
    comment_deleted($entry_id, $comment_id, $old_comment)

    Die historischen Hooks reichen nicht, um die Antwortzeit weiter zu reduzieren.

  5. Frank Hochmuth

    um 19:37 Uhr

    Fraenkiman schrieb: Im aktuellen Entwicklungsstand, hat das Plugin über 300 PHP-Funktionen. Das sind mehr als alle mir bekannten Plugins zusammen haben. Es wird langsam unübersichtlich Und der Smoke-Test ist nicht viel kompakter.

    Jetzt passt das Mastodon-Plugin nicht mehr auf eine 5,25-Zoll-Double-Density-Diskette 😆


RSS | Atom |


Kommentar hinzufügen

Die Felder Name und Kommentar sind Pflichtfelder.


↻ Neu laden 🔊 Vorlesen

Ich verarbeite deine Daten gemäß meiner Datenschutzerklärung.

BBCode Hilfe