I've seen many answers to this question But not in the format I'm interested in. I'm developing an app that should upload data to a server. The app has users playing against each other with that data. Now the question is - if I divide the workload to multipile servers, then I'd have them worldwide and when player uses the app I'd choose the server closest to him. That will create a state in which all my data is divided to many servers. Now when a user plays the app, he'll need to obtain data related to him and to other users he's playin against. This data will be divided to several servers so the server should identify all the related servers it needs data from and obtain it.
So, isn't it more efficient to have 1 huge server that will contain all the data, and the user needs to work against it, or is it more efficient to let the servers communicate between them?