Database using HttpService vs data stores

So I want to have players be able to look at their track record in my game. So a database of their previous games with some statistics included.

Originally I had thought of implementing this through data stores using the ProfileService module by Madwork. But I am also considering using HttpService for storing the database on an off-site server.

In essence ProfileService does what I need it to. With HttpService also enabling to use data that comes outside of Roblox - for example a live stock market. But I don’t need that in my game. HttpService would also allow for integration with a private website that players could visit and also enables exporting the data outside of Roblox more easily.

So using HttpService could be more useful in the long run, if I ever wanted to export my game outside of Roblox. But it would also require hosting a website and setting it up - so extra work.

The other issue would be the data limit using data stores. From what I could find on the developer hub, there seems to be a character limit of 4,000,000 characters per entry to data stores. Does this mean that there isn’t a limit to the overall size of the database being stored? So I don’t have to worry about running out of space and needing to delete older entries as long as I stay within the character limit of any given data store save call.

Also to note that HttpService doesn’t seem to have a fletched out module like data stores have with ProfileService. So I would need to write my own back-end to minimize Http calls.

In my game I use both.

Are datastores down? (E.g Adopt me update)
Using my own Database

My database got on fire?
Roblox’s DataStores are here to save us!

DataStores are your way-to-go with basic, recoverable information such as achievements that can rely on badges. While HttpService is another good service to use, not implementing ratelimits can destroy their server entirely, vulnerability to DDOS attacks from the exploiting user.

Its mostly a grey area, DataStores are epic since they’re easier to set up, but less reliable (oh no your script got an error and the pcall didn’t repeat! and oh no SetAsync() didn’t help you there and overwritten previous logs!) while HttpService works like a charm, but horrendous data-recovery and a service harder to setup (oh god no the servers got ddosed and how am i supposed to recover lost data?).

Bouncing back from other people, rely on both.