nix102on
(YFPro67)
October 4, 2024, 5:05pm
#22
Its just profileservice, why should i add it?
ProfileService does still work, but it no longer lives up to what it once did imo (especially seeing how it’s been, what, 3 years since the last update?), and there’s better alternatives that have started to release recently, DocumentService being one of them (and my personal choice when making games now).
DocumentService is basically just a more up-to-date version of ProfileService with more features
Quoting this directly from the DocumentService forum post:
Frequently Asked Questions
DocumentService has far superior error handling, inspired by Rust’s Result type. Intellisense tells you which errors you need to handle for each method - and only the ones relevant to that method. This helps you write better code, faster.
It’s fully typed checked. This means you’re less likely to make mistakes and don’t need to spend time cross-referencing the documentation!
It’s just as powerful, but with a much simpler API that follows SOLID principles.
Validation - ProfileService does not validate your data. This means an accidental mistake could cause data inconsistency or corruption, and if data is manually changed you could get weird errors and side effects. DocumentService lets you validate data before you save it and as you load it, preventing bugs. DocumentService will also error if your data is unsavable, making issues obvious to you before you publish your game - ProfileService will not.
Migrations - in ProfileService, if you want to change how your data is formatted, you can’t. You can only add new stuff! This can limit long-term maintenance. DocumentService supports migrations (inspired by Lapis), which allow you to mutate your schema over time and mark changes as not backwards compatible.
ProfileService’s API is very player-centric, which makes it difficult to work with data that isn’t session-locked. DocumentService is designed so that session-locking extends the API, rather than defines it. You can turn it off and still use methods that don’t involve caching in the exact same way. DocumentService also has a method designed specifically to work with non-session-locked data efficiently called :OpenAndUpdate
.
Cache updates are immutable in DocumentService, which helps prevent bugs. In ProfileService, they are mutable.
ProfileService is outdated and hasn’t been maintained in several years - for example it still imposes a 7 second wait time between requests, which is no longer needed, and was written in Lua 5.1 rather than Luau.
DocumentService’s source code is easier to read and maintain.
1 Like
nix102on
(YFPro67)
October 5, 2024, 7:10pm
#24
Alright ill add that, but should i remove profile service?
nix102on
(YFPro67)
October 6, 2024, 3:26pm
#25
anyone got anymore suggestions?
paswa
(Hello)
October 6, 2024, 3:54pm
#26
I would add RbxUtils RbxUtil | RbxUtil
I think you should remove ProfileService, yeah
nix102on
(YFPro67)
October 14, 2024, 2:38am
#28
Should i categorize these services? Cuz im planning to add more
3 Likes
You should, would make reading these much more easier
2 Likes
nix102on
(YFPro67)
November 15, 2024, 3:53pm
#30
finally made it categorized! Ill add more once we reach 50 likes :))
nix102on
(YFPro67)
November 20, 2024, 6:26pm
#31
46 likes!!! Four more to go!!!
1 Like