this post was submitted on 18 Jan 2025
235 points (89.6% liked)

Technology

60566 readers
3594 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] OmnipresentWalrus@feddit.uk 1 points 2 hours ago

ActivityPub based platforms (Mastodon, Pixelfed) are monolithic services. You have to run the entire instance (account hosting, feed generation, moderation etc.) all in one place on one machine.

While you can do work with loads balancing to manage high traffic moments, this approach is still brittle to spikes in load.

ATP separates each of these services and handles how's these services communicate and operate. I can't really explain it better than their documentation, but one easy example to point to is how you can self-hodt your own PDS (Personal Data Server) which stores your account data and posts, meaning you can keep it stored entirely on your own hardware separate from whoever provides your feed building and presentation service.

I'd highly recommend reading both the ATP and ActivityPub documentation as both are very well written and communicated these differences more effectively.

If I have to explain why separation of concerns in the way that ATP approaches things is more scalable, I might suggest doing some reading on web application architecture patterns and the pros, cons, and practical applications of each.

The TL;DR version is that if the different components of your application run independently of each other, it's easier to have redundancy and extra resources in place for the specific components that require it.

This is also helpful for federation, as the end goal of ATP is to be able to host your personal data where you want, use the feed builder that you want, the labeller that you want, the app view that you want, regardless of who runs each service.