this post was submitted on 05 May 2024
49 points (67.9% liked)

Fediverse

28625 readers
156 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).

If you wanted to get help with moderating your own community then head over to [email protected]!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 7 months ago* (last edited 7 months ago) (2 children)

That sounds a lot like a weird spin on the Slashdot effect, caused by content mirroring. It seems that it could be handled by tweaking the ActivityPub protocol to have one instance requesting to generate a link preview, and the other instances copying the link preview instead of sending their own requests.

But frankly? I think that the current way that ActivityPub works is outright silly. Here's what it does currently:

  • User is registered to instance A
  • Since A federates with B, A mirrors content from B into A
  • The backend is either specific to instance A (the site) or configured to use instance A (for a phone program)
  • When the user interacts with content from B, actually it's the mirrored version of content from B that is hosted in A

In my opinion a better approach would be:

  • User is registered to instance A
  • Since A federates with B, B accepts login credentials from A
  • The backend is instance-agnostic, so it's able to pull/send content from/to multiple instances at the same time
  • When the user interacts with content from B, the backend retrieves content from B, and uses the user's A credentials to send content to B

Note that the second way would not create this "automated Slashdot effect" - only A would be pulling info from the site, and then users (regardless of their instance) would pull it from A.

Now, here's my question: why does the ActivityPub work like in that first way, instead of this second one?

[–] [email protected] 4 points 7 months ago (1 children)

If server A makes one request, it keeps server B from being overload by thousands of requests from users A.

[–] [email protected] 2 points 7 months ago (1 children)

"A" Users would need to send requests to some server anyway, either A or B; that's only diverting the load from B to A, but it isn't alleviating or even sharing it.

Another issue with the current way that ActivityPub works is foul content, that needs to be removed. Remember when some muppet posted CP in LW?

[–] breakingcups 3 points 7 months ago (1 children)

Yes, but this way demand on instances scales with user count and aliows smaller instances to exist. Otherwise an errant toot on a small instance that suddenly gets popular will instantly drag that smaller instance down.

[–] [email protected] 2 points 7 months ago (1 children)

Got it - and that's a fair point. I wonder however if this problem couldn't be solved another way, specially because mirroring is itself a burden for the smaller instances.

[–] [email protected] 3 points 7 months ago (1 children)

consider that caching happens at thousands of levels on the internet. every centralized site has its content replicated many many times in geo local caches, proxies and even local browsers. caching is a very core concept for the internet. others often bash AP because it replicates a lot, but that's kind of like explicit caching: if the whole fediverse network fetched a post from it source, millions of requests would beat small servers down constantly. big servers cache the content they intend to distribute and handle the traffic spike instead of the small instance. small instances on their hand dont need to replicate as much and can rely more on bigger instances, maybe cleaning their cached content often and refetching when necessary. replication is a feature, not a design flaw!

[–] [email protected] 2 points 7 months ago

replication is a feature, not a design flaw!

In this case I'd argue that it's both. (A problematic feature? A useful bug? They're the same picture anyway.)

Because of your comment I can see the pros of the mirroring strategy, even if the cons are still there. I wonder if those pros couldn't be "snipped" and implemented into a Nostr-like network, or if the cons can't be ironed out from a Fediverse-like one.

[–] [email protected] 3 points 7 months ago (1 children)

Check out Nostr, ActivityPub alternative that does authentication separately from content, works more like that.

[–] [email protected] 3 points 7 months ago* (last edited 7 months ago)

I'm aware of Nostr. In my opinion it splits better back- and front-end tasks than the AP does, even if the later does some things better (as the balance between safeness and censorship-resistance). It's still an interesting counterpoint to ActivityPub.