For PeerLibrary project we had discussions on how much distributed or centralized should we make it. It is a cloud service and centralizing (unifying) user base and content has clear benefits for both end users and developers. End users have better user experience and ease of use, all content is available quickly and easily, and all other users are there, making social experience better. For developers, code can be much simpler and maintenance of only one instance makes it easier to deploy new versions and push security fixes quickly. It is easier to collect statistics and do A/B testing on a large sample. On the other hand, having multiple instances of PeerLibrary distributed around the world makes whole system more robust, specialized instances could be offered, privacy of users increased. Having PeerLibrary distributed would make forkability easier, encouraging more community control of both the project and the content (commons), preventing corruption of the main instance or core project.
I argue that what if we want a distributed system, what we in fact want is what I call “proactive federation” and not simple federation.