Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How Federatable is the Fediverse?
8 points by warrenm on Dec 6, 2022 | hide | past | favorite | 5 comments
How sturdy is federation actually in the fediverse?

At what point does it become practically impossible to federate a new instance into the existing verse?

If it's "never", how do you ensure that you're federated "enough" to be findable and/or to find what you want to?

Is it like adding a node/network/PoP to the internet - so long as you're connecting to something connected, you're now connected (an "all roads lead to Rome" scenario)?

Or is there a minimum number of connections you need to make to be considered "federated"?

Do enclaves or isolated pockets of federation exist (maybe akin to galaxies inside the universe - you know the others exist, maybe even can see them from a distance, but cannot communicate with them)?

Maybe I don't understand the federation model well enough (very possible/likely), and maybe this question doesn't make sense to someone well-versed in the topic - if so, please explain what I'm missing so I understand better :)

---------

(Originally started as a comment on another post - https://news.ycombinator.com/item?id=33834361




There are definitely isolated instances that deliberately don't federate with anyone (and thus operate like a typical centralized social network). There are also widely blocked instances that seem to federate with each other and might effectively form an enclave.

It's hard to say in absolute terms. Say the vast majority of instances block instance A, and instance B goes online and begins communicating with the larger fediverse without blocking A (either deliberately or because they aren't aware of A). If users on A and B don't initiate communication, instances A and B won't communicate to my knowledge†, but there's nothing blocking communication. So at that moment A is not totally cut off from the fediverse.

†There might be some discovery features I'm not aware of. Also, there are some edge cases. If a third instance C joins the fediverse without blocking A (like B did), a user on C could follow a user on A, then a user on B follows that user on C, and finally that user on C could boost a post from A onto B's timeline, which I believe would cause A and B to start communicating.


ActivityPub (the protocol behind fediverse federation) can be seen as both "push" and "pull" federation and they both have different scale factors.

"Pull" can be seen like the RSS model: you set up the accounts that you follow and your instance subscribes a queue to check their feeds and outboxes, and somewhat the feeds and outboxes of people/accounts that they follow. The scale of how "federated" your instance from that standpoint is basically the combined (deduplicated) set of all the follows on that instance. It scales roughly with your number of users and what they choose to read with just a slight virality to also include some of the follows of your follows.

The most obvious follow of a follow is boosts. When a toot you post is boosted it gets added to the feed of the boosting user. When other instances encounter that boost they may directly pull your whole feed from your instance to check the canonical source. Or they may just pull that one toot.

"Push" can be seen like the email model: you have an email address and that has an inbox. This is how you receive things like Favorite/Like notifications, direct messages, and other stuff. Scale is similar to email: it scales with the number of notifications and messages you receive to your Inbox modulo spam detection and unwanted contacts blocks. ActivityPub is entirely HTTP based so your inbox is basically a fancy webhook and scales as well as your instance website can accept incoming webhook traffic.

The combined federation of both approaches stacked together is a complex weave. It's kind of hard to define how "well connected" any given instance is in the federation. Is it how many other instances it pulls from in it queues? It still probably sees plenty for boosts from more instances than just those, too. Is it how many instances send messages to its inboxes? Just about any instance can send directly to an inbox without a previous "connection"/introduction (modulo spam detection and blocklists). Most of it is "organic" based on user activity (just like RSS and Email).


I think you may be over complicating this. It’s not one giant network of users like Twitter. It’s individual servers who know how to communicate with some specified protocol - just like email.

How “findable” is your email address? Are there isolated pockets of e-mail that you can maybe even see from a distance, but can’t communicate with them?


That's just it - I don't know if I'm overcomplicating, undercomplicating, or rightcomplicating it

I honestly have't grokked the protocol/concept well enough to know how far away from "right" my mental model is :)


Think of it in the same way as email: anyone can stand up a server, the users on that server are addressable by users on other servers, and some communication can happen between them. There are obviously differences under the hood, but it's a good starting point for a mental model.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: