May 9, 2024

The mountain of shit theory

Uriel Fanelli's blog in English

Fediverse

Threads and the Fedeverse.

There is some excitement in the Fediverse (or “Mastodon” for cephalopods) over the news that “Threads” has an ActivityPub interface, meaning it would be able to federate with the Fediverse, ie anything else that talks to ActivityPub. There are already petitions from sysadmins, who refuse a priori to federate. And that in my opinion is a waste of time.

There are many reasons why I say this.

The first is that the ActivityPub interface exists because there is a European directive which obliges social networks (those limited to small text messages) to be interoperable. This interface, therefore, is not necessarily built to make Threads federate as any instance of the fediverse does.

He can, if he wants to, but let's face it: why SHOULD Meta do it?

Personally, I see this move as having only “cons” but no “pros”. The fact that this interface exists in my opinion means that in theory it could, but when I look at the burdens of federating with the fediverse, I immediately understand that they have NO intention of federating.

But let's go step by step. Some technical considerations.

ActivityPub is practically a dictionary, with some conventions that are more related to practice than to a standard. Completely different actions and entities can be built on the same dictionary.

It means that, for example, the actor for the Groups has not yet been born: some software have decided to implement one, but for example Mastodon, Pleroma and all the other big names have never joined and do not see the groups of Lemmy and Kbin .

So, first of all, on a technological level, it is not at all obvious that the fact that Threads uses ActivityPub allows it to federate with Mastodon, and vice versa.

It is possible if not probable that Threads uses a dialect of ActivityPub which is completely unable to federate with Mastodon, Pleroma , Misskey &co, but is perfectly capable of federating with other OTTs, like Google, Youtube, etc.

This would allow them to BOTH federate with other GAFAMs, and thus satisfy EU regulations, and keep out the fediverse, which at that point would be “the ones using the ActivityPub dialect the wrong way”. And even if the fediverse complains that it's not the “real” ActivityPub, most people would think they see that guy entering the highway and complaining that everyone is in the wrong lane.

So, first of all it is not certain that ActivityPub = Federate, and personally I find it unlikely. Whatsapp also uses a dialect of XMPP, but it's not compatible with the rest of the XMPP world.


But let's also assume that Meta has decided that it can federate using the ActivityPub dialects most commonly used by the fediverse. He will do it'?

I see several obstacles to this decision.

First, if they federated they would have to do several things:

  1. Comply with the Fediverse reporting mechanism. That is, moderate all external instances to prevent them from writing poop into Threads. Any malicious actor could, in that case, use ActivityPub to post Fake News, spam, and anything else, into Threads.
  2. Comply with the GDPR. If a Threads user writes to a user of a fediverse instance, say, Meta is passing data to a third party that it can't even identify with certainty. It could be an instance running on a raspberry in some house.

The first thing is, of course, expensive. An actor could send messages to /inbox from any IP, from any domain, as long as he used one of the many existing ActivityPub libraries. A good administration team could do it, but the most convenient thing is to handle it like this: “do you want to federate? Make yourself known, and maybe even pay.”

So by default Threads wouldn't federate, even though it could, and wait until it has a contract with someone to set up federation.

The second thing is really complicated. Because you don't know who is following users, and that from that moment on they will get a copy of those users' public traffic. In this direction, the problem is that you are giving data to an unknown data processor.

If we're talking about small instances of the fediverse and small numbers, which are out of GDPR scrutiny, it's probably not a big deal. But if it were able to have Twitter users, the Thread system could not federate with the "fediverse" and simultaneously comply with the GDPR.


So, I don't share this climate of war, nor this overexcitement:

  1. The fact that it uses ActivityPub does not mean that it can federate with what we call Fediverse, due to the ambiguity of the standard.
  2. just using ActivityPub doesn't mean they WANT to federate with what we call Fediverse, nor that it's legally feasible.

Personally, I believe they have implemented ActivityPub to federate with other big players, using their own version of ActivityPub which is still ActivityPub, but ActivityPub is so loosely structured that you can write dozens of protocols in it that don't federate, and all of them are still “ ActivityPub”.

In general, I would say "Calm and Chalk"

Leave a Reply

Your email address will not be published. Required fields are marked *