On a large game say for example blade ball or any other game with concurrent players in the hundred thousands, would profileservice be able to hold up or would there ever be data loss? These humungous games store their players data somehow or is it that they make modules with even more lines of code than profileservice?
ProfileService is an excellent module. It works well with large servers too (with over hundred players), and it spreads the auto saving to accomodate the limits. The creator said it doesn’t consume more than 10-18% of the total request budget.
Larger doesn’t necessarily corelate with higher quality. I’m sure developers have some pretty good alternative solutions, but among the public resources, ProfileService is incredibly well designed, safe and effective.
It still works with Roblox DataStores though, not anything external. No data storage is limitless. For external the restrictions would be HttpService limits, and for DataStores they are listed in the below article.
The total player count is split among servers. While ProfileService does have global updates and writes metadata to the profiles, it doesn’t operate on the whole game universe level. One module instance doesn’t handle all live players, only a fraction, those that are in the server/place it is running in. It does hold up.
Is there a chance for data loss?
There always is. However, the odds of ProfileService being at fault are very low. And there’s always a chance of an outage, which no saving module can stop. Albeit the damages can be mitigated with data versioning (also in the article).