Ich mache mir ja schon seit riniger Zeit Gedanken, über die immer wieder sehr kaputte Föderation der vielen Dienste im Fediverse.

Jedes Service hat immer nur rinen Teil der Features implementiert, und diese passen oft nicht zusammen.

Mir schwebt eine Lösung, ähnlich wie sie bei Datenbanken vor Jahren beschritten wurde, vor.

Viele Dienste haben die Föderation und/oder Activitypub erst später zu ihrem bestehenden Projekt hinzugefügt. Auf die Schnelke falken mir da Lemmy, Funkwhale, Pixelfed und Friendica ein.

Wenn es jetzt einen oder mehrere Implrmentierungen rines Föderation-Services gäbe, auf den eine Anwendung - ganz ähnlich wie bei den Datenbanken - zugreift.

So ein Dienst kann in verschiedenen Sprachen implementiert sein, oder einer ist mittels Plugins um weitere Protokolle erweiterbar, der andere hat sie direkt eingebaut…

So ein Dienst kann von der Applikation mit einem Protokoll oder einer API angesprochen werden. Die Applikation kann das volle Featureset nutzen, oder nur einen Teil. Wichtig ist, dass die Föderation mit anderen Services korrekt und vollständig abgebildet wird.

Das soll heißen, wenn Friendica ein “article” an Service X schickt, dann kommt das dort korrekt an. Und Service C schickt ein Dislike an Service D. Usw. usf.

Was das Zielservice dann mit diesen Events/Verben macht, bleibt dem Zielservice überlassen. Stellt es die Kommentare dar, oder nicht, gibts einen Kalender oder nicht… egal. Das Fediservice stellt sicher, dass die Anwendung diese Features auch später implementieren kann, aber vorher die Server2Server-Kommunikation schon korrekt abläuft.

Die Applikationsentwickler können dann ihre ganze Energie ins Frontend, die Authentifizierung, Bildverarbeitung, Videodarstellung und was auch immer stecken. Die Föderation wird funktionieren. So wie die Datenbank auch immer funktioniert. Egal ob mysql, mariadb oder postgresql oder gar sqlite verwendet wird.

Kroeg übrigens ist ein in C geschriebener Activitypub-Server, der das ganze Protokoll als einziger kann. (Siehe https://activitypub.rocks/implementation-report/ )

  • hackbyte@friendica.utzer.de
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    @jakob Hrm… wenn ich dich richtig verstehe, beschreibst du grad ActivityPub und wie der verknüpfung der einzelnen dienste untereinander funktionieren soll…

    Am ende wirds dann aber dennoch darauf hinauslaufen, das du auf friendica einen post mit markup veröffentlichst und der bei mastodonten nur als plaintext rausfällt … und andersherum, mastodonten werden ihre wirren umfragen veröffentlichen und die kommen bei friendica nur so halbgar an…

    Wenn es dazwischen nun einen server gibt, der alles sauber implementiert … bringt das den usern an den einzelnen interfaces aber immernoch nichts.

    • jakob@soc.schuerz.at
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      @hackbyte @jakob Es geht darum, dass friendica einen “article” postet, aber in lemmy löst das eine fehlermeldung aus, weil das “article” gar nicht kennt, weil nicht implementiert… (ich glaub, das war ein problem).
      Oder friendica implementiert events anders als mobilizon. mobilizon kann auf friendica ein neues event erstellen, updaten aber nicht mehr löschen…
      friendica hat einen “ich nehme teil”-Button für events… aber mobilizon versteht den wieder nicht…

      was die anwendung dann dahinter macht… ist sache der anwendung. es geht mir wirklich rein um die föderation.
      Ich hab das jetzt bei einigen bugmeldungen zwischen verschiedenen diensten die ich selbst aufgemacht habe, erlebt, dass die implementierungen irgendwie nicht sauber waren… oft mussten nur “kleinigkeiten” dafür mit jedem anderen service extra “nachgebessert” werden, dann klappte es.

      Wenn ich allerdings einen Fediservice (so wie einen Datenbankservice) habe, wo sich die Devs wirklich nur mit der Föderation auseinandersetzen, und diese perfektionieren können, dann muss nicht jeder dev jedes noch so kleinen oder großen Fediverse-Dienstes sich auch noch um das kümmern.
      JSON-LD dürfte schwierig zu implementieren sein. Es gibt schon Anleitungen, wie Basics “richtig” implementiert werden sollen, weil das bei jedem Service offenbar anfangs falsch gemacht wird…

      Bei Datenbanken regt sich ja heute auch niemand mehr auf, dass der eine mariadb und der andere postgresql verwendet, und jeweils nur ein Subset der Funktionen einsetzt… Aber es kann einfach die Applikation auf weitere Features der Datenbank erweitert werden, wenn das notwendig ist.

      Genauso stell ich mir das bzgl. Föderation vor.

      Ich installiere mir z.B. friendica, was die abhängigkeiten zu mariadb/mysql hat, dann halt eben auch zu fediserv oder apd (activitypubd). Dann braucht man noch einen Webserver (apache, nginx…)

      vorne dran bleibt es immer noch friendica. Die Userverwaltung, die Darstellung, die Funktionen (Blog, Gruppen, Events…) kommt von friendica. Aber die s2s-Kommunikation läuft über fediserv oder adb (das sind zwei Phantasienamen von mir für den Föderations-Teil)

      • Tealk@lemmy.rollenspiel.monster
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        Glaube die Idee ist gar nicht so schlecht, dazu müssten aber eine einwandfreie und gut dokumentierte API her und bestehende Objekte ihren backend komplett über den Haufen werfen.

        Damit löst du aber wie @hackbyte@friendica.utzer.de schon gesagt hat weniger das Problem der User, sondern nur der Fehlermeldungen. Ein paar Kleinigkeiten, die du gerade erwähnt hast werden dann sicher glatt gebügelt; aber vieles hängt ja dennoch von dem Frontend ab und was er anbietet. Bei Friendica hatte ich z.B. das Problem, dass das Teilen, von Kalendereinträgen mit einer bestimmten Gruppe von Benutzern intern schon nie gut funktioniert hat, (Wollte das für die Rundenverwaltung P&P nutzen) aber das nicht immer sauber bei allen angekommen ist.