• catgirl2005
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 months ago

    This makes sense, thank you. I’m becoming so aware of how little I know about software (I had to look up the term frontend).

    Is this right: Mastadon is an open source frontend and ActivityPub is the open source backend. And Mastadon is kind of like a tool that people use to create instances. The instances keep all of their data on their own servers, but the servers can talk to each other so every server has access to data from every other server. So if Musk bought Mastadon, he wouldn’t have control of all the individual servers’ data, and if Musk bought a server, all the users who wanted to could switch to another server without losing any of their data. Does this mean that every server holds a copy of all of the data from the whole network of servers?

    • Arma@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      The instances sync data only as needed - for example, if a user on a specific instance is following someone on another instance, and that someone posts something. Fetching and storing data from the entire Fediverse would require an absolutely enormous amount of bandwidth and storage, much more than most people will ever be able to afford and maintain :) (This is also why instances often purge old cached data - to reclaim storage space that is unlikely to be taken by useful data, per the nature of minuteness of social networking, and if you ever need a deleted resource, it can just be requested and synced back up to your instance, as long as it’s still available on the original one.)

      As the end user, you should be aware that this synced data may, and most likely will at some point (not many instances achieve absolute 100% uptime, after all), get incomplete - especially if you’re using a smaller instance. When browsing user profiles, it is generally a good idea to look up their profile on their own instance, as it is guaranteed to have all of their data.

      Also note that my explanation regarding “frontends” is oversimplified and technically inaccurate: a “frontend” is the user interface part on top of the software that implements the protocol. This, basically, means that you don’t have to stick with whatever UI your instance offers - there are other web and native clients that will talk to your (Mastodon, Pleroma, Misskey, whatever they come to support) instance, and your instance will still handle all things ActivityPub, such as fetching data from other instances to it and vice versa.