My guess is that Friendica’s issues lie in its various federation connectors. They seem like leftovers from Friendica’s early days or derived from such.
Part of Friendica’s concept is to be able to connect to just about everything and then some. Friendica itself is based on a combination of its own DFRN protocol and ActivityPub. It connects via ActivityPub. It connects via the diaspora* protocol. It can crosspost to WordPress, any other XML-RPC-based blog, LiveJournal, Libertree and Dreamwidth. It can integrate accounts from Twitter, Tumblr and Bluesky. It can subscribe to RSS and Atom feeds. It can “federate” via e-mail.
Sound fine and dandy. The actual issue is two-fold: Friendica’s federation code is terribly inefficient. As I’ve said, it seems to be Mike Macgirvin’s first shot at building such stuff, either untouched since ca. 2010/2011 or derived from similarly old code. Besides, if I remember Friendica right, none of this is really optional. If the server admin activates it, it’s permanently on for all accounts, regardless of whether they actually use it or not.
Sure, it worked well under lab conditions when there were only few connectors. And it worked well while Friendica was just a few very early adopters playing and tinkering around with it. But when these became a few thousand people actually daily-driving it, and the number of connectors gradually grew, shit got real.
I remember Friendica nodes closing their registration at not even 150 users back in the day because they were full. Granted, these were mostly nodes that had the Facebook connector on (which worked like the Bluesky connector nowadays), and people would mirror their entire Facebook timelines with hundreds of “friends” into Friendica. Still, nodes without the Facebook connector didn’t fare that much better.
And yes, there were public Friendica nodes disappearing spontaneously all the time. That’s why Mike invented nomadic identity and created Hubzilla in the long run.
One of the first steps on the way was in 2012 when he took Red, the fork of a fork of Friendica that would eventually become Hubzilla, and re-wrote the entire backend against his new Zot protocol. In the course of doing that, he must have redone all the federation stuff. In addition, he made all protocols that aren’t Zot, RSS and Atom optional and turned them off by default on each newly created channel.
I have no other explanation as to why hub.netzgemeinde.eu is working that well with 3.5K channels (only a bit over 220 of which have recently been active, but the inactive ones cause their share of load, too), including cloned channels as well as clones, with a whole lot of add-ons activated, on an ARM-based server, operated by a guy who pays for the server himself and refuses to accept donations.
My guess is that Friendica’s issues lie in its various federation connectors. They seem like leftovers from Friendica’s early days or derived from such.
Part of Friendica’s concept is to be able to connect to just about everything and then some. Friendica itself is based on a combination of its own DFRN protocol and ActivityPub. It connects via ActivityPub. It connects via the diaspora* protocol. It can crosspost to WordPress, any other XML-RPC-based blog, LiveJournal, Libertree and Dreamwidth. It can integrate accounts from Twitter, Tumblr and Bluesky. It can subscribe to RSS and Atom feeds. It can “federate” via e-mail.
Sound fine and dandy. The actual issue is two-fold: Friendica’s federation code is terribly inefficient. As I’ve said, it seems to be Mike Macgirvin’s first shot at building such stuff, either untouched since ca. 2010/2011 or derived from similarly old code. Besides, if I remember Friendica right, none of this is really optional. If the server admin activates it, it’s permanently on for all accounts, regardless of whether they actually use it or not.
Sure, it worked well under lab conditions when there were only few connectors. And it worked well while Friendica was just a few very early adopters playing and tinkering around with it. But when these became a few thousand people actually daily-driving it, and the number of connectors gradually grew, shit got real.
I remember Friendica nodes closing their registration at not even 150 users back in the day because they were full. Granted, these were mostly nodes that had the Facebook connector on (which worked like the Bluesky connector nowadays), and people would mirror their entire Facebook timelines with hundreds of “friends” into Friendica. Still, nodes without the Facebook connector didn’t fare that much better.
And yes, there were public Friendica nodes disappearing spontaneously all the time. That’s why Mike invented nomadic identity and created Hubzilla in the long run.
One of the first steps on the way was in 2012 when he took Red, the fork of a fork of Friendica that would eventually become Hubzilla, and re-wrote the entire backend against his new Zot protocol. In the course of doing that, he must have redone all the federation stuff. In addition, he made all protocols that aren’t Zot, RSS and Atom optional and turned them off by default on each newly created channel.
I have no other explanation as to why hub.netzgemeinde.eu is working that well with 3.5K channels (only a bit over 220 of which have recently been active, but the inactive ones cause their share of load, too), including cloned channels as well as clones, with a whole lot of add-ons activated, on an ARM-based server, operated by a guy who pays for the server himself and refuses to accept donations.
That is neat to hear that back-story, thanks for sharing! 🤯