Easy to start & API is similar naming to ProfileService super easy to transfer over
Promise-based API to know exactly when things are done
Actively maintained codebase and easy to contribute, and to add future functionality
No getter/setter functions allowing for the developer to customize their experience
Session Locking
Spreads save calls equally out
ProfileService VS DataKeep
The original intent of this module was to fix issues I had with ProfileService (still a wonderful resource I recommend checking out if this is not for you)
ProfileService issues DataKeep aims to solve
Profiles do not automatically clean up internal connections, making the developer have to perform inconvenient clean-ups
ProfileService async calls make waiting for Profiles to be loaded difficult. Causing weird patterns when waiting for Profiles; DataKeep is promise-based
Shorter, scripts for faster future development, and contributors (vs ProfileService fitting classes inside one script for micro-performance)
Type checking, to a certain extent. There is a caveat due to Luau limitations, can not type check Promises (but it shows on documentation)
Being honest, I started using ProfileService as DataStore2 went out of date and it didn’t have the session-locking feature, but for the past few days just using it is a little bit of a hassle.
Let’s say you’re making a game and you’re following the normal docs. It’ll first tell you to grab the code (literally huge, sometimes pasting in the code also causes lag). Again, when you’re using it you’d have to connect it with ReplicaService which is another problem I see. Of course, I’d have to do the same thing here, but working with DataKeep seems easier. The only reason I’m thinking of using this module is because of it using promises. Literally, if you want to keep your game secured, who wouldn’t?
Of course, no hate to ProfileService, but my personal opinion? I’m already in love with this. Another thing beside promises is its automation. It does many things internally which wasn’t a main feature in ProfileService.
Will probably try it out. Amazing job on doing something like this! I’d also like to hear other people’s opinions
I don’t really know how to benchmark how good DataKeep is compared to ProfileService, so I’ll wait for reviews. If the reviews end up being positive, and people prefer this to ProfileService (which is a pain to use), I might switch!
Edit: Nvm, I’m trying it rn. The datastore scripts of my game are already broken, why not just redo the whole thing?
Hey! Sorry for the delay. Just noticed I wrote them complete on my checklist but actually forgot lol. But now done and will be published in the new patch coming.
But .OnRelease, and .OnGlobalUpdates automatically will clear connections. And any future signals. ProfileService does not for most, to my understanding and requires the developer to do so.
Which makes since in some designs the developer should control and always know the state of things, doesn’t hurt to wrap it into a cleaner if you want.
A video would only cover basic usage. Currently, basic usage is provided and can see how it interacts with the API. Maybe in the future from community videos