I do think that's the way forward though, rather than a few big instances, but time will tell what the right percentage of the split is for good performance for everyone.
I do think that's the way forward though, rather than a few big instances, but time will tell what the right percentage of the split is for good performance for everyone.
I have read the ActivitPub spec but not the Mastodon API - so I'm probably wrong on the following part.
Let's assume that we have 1000 users on a single server, posting a single message to those 1000 followers is writing a 1000 DB records (assuming a table with post - user link).
Let's assume we have one server with 500 users, and 5 other servers with 100 users each. We still write 500 DB records on the first server, and make 5 API calls to the other servers, which each write 100 DB records.
If the above holds true, the overhead is 5 extra API calls? At least, I hope Mastodon doesn't make API calls for every user on a server!
1000 new users on an existing server are 1000 app/browser instances making separate network connections and separate little queries to that server.
Whereas (I would hope) there are aggregation efficiencies in connecting a new 1000-user instance to the network.
Also remember there are certain optimizations in Mastodon. If an instance A generates a toot, but the toot has no followers on instance B, then B doesn't see it. However, an instance always processes a toot from its own directly connected user's browser or Mastodon application.