2 ms·
ActivityPub (the protocol behind fediverse federation) can be seen as both "push" and "pull" federation and they both have different scale factors. "Pull" can
by WorldMaker 4y ago
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).