The protocol is fine for federation without any sort of centralization - though this causes some problems to be noted. The servers... less so. The servers have difficulty when something goes viral (and the content that it links to may also have trouble as noted in
https://mastodon.social/@jwz/109411593248255294 (even though this is jwz, this link is safe))
If you have a small mastodon instance that has a member that has a post that goes viral, instead of trying to handle a handful of federation threads that your users are doing to pull content in you've now got hundreds of other sites trying to pull content from your site to theirs.
For a small site, this can completely consume all the treads.
A user on your site going viral can inadvertently DDOS the site. A widely followed user posting a link to some content can DDOS that content as every instance of mastodon wants a preview thumbnail of it now. This is known as a stampede.
https://www.networkworld.com/article/3682129/surviving-a-mas...
https://www.netscout.com/blog/mastodon-stampede
> The problem arises when a federated user with a high number of followers shares a post, or boosts (Mastodon’s term for sharing another user’s post) on their timeline. The core protocol for coordinating and sharing information among Mastodon instances is ActivityPub. When a user shares a post, it is published via ActivityPub to the Mastodon instances of all of that user’s followers. When an instance gets a new post that contains a link, it makes a request to that link to generate a preview. The process happens automatically.
> This creates the fan-in problem. A user with 100,000 followers posting a link to coolthing.example.com has effectively acted as a command-and-control for 100,000 processes to hit coolthing.example.com.