MadStudioRoblox / ProfileService

Universal session-locked savable table API
https://madstudioroblox.github.io/ProfileService/
Apache License 2.0
292 stars 157 forks source link

OrderedProfileService #33

Closed FirstVertex closed 11 months ago

FirstVertex commented 1 year ago

Hello, I am a huge fan and an avid user of your ProfileService in my game Slither.io Simulator I propose some interesting ideas concerning applying the concepts of ProfileService to a façade around OrderedDataStore.

When players exit the arena in Slither, I write their current Kill count to an OrderedDataStore Sometimes if they frequently join and leave it is causing too many writes and I get messages in the log like "DataStore request was added to queue"

I thought it would be an interesting exercise to translate some of the features of this fabulous ProfileService lib, to similar concepts against OrderedDataStore, which has some different and unique challenges of it's own (most importantly the ability to store only a single number on each row). The graceful way that ProfileService handles reads and writes, so as "not to go Brrr" is what I propose could also be applied to OrderedDataStore.

Would you consider creating a copy of ProfileService which is re-tooled for that purpose? You, better than anyone, would be most knowledgeable to understand the scope and complexity involved in that endeavor.

Another proposal would be a way of tying together the OrderedDataStore with the ProfileService. Because I guess every dev who wants to implement it is going to need both of these tools, and what we all need is a way to correlate the Profile into one or more OrderedDataStores, with all that extra sugar that we love about using ProfileService.

g-uitarist commented 1 year ago

I agree with this, hoping to see OrderedDataStore implemented in ProfileService.

Azuuu commented 1 year ago

I would love to have this! I have this issue also.. Can't really find a way to mitigate the queue request.

LM-loleris commented 11 months ago

Thank you for sharing your ideas.

ProfileService is a highly specialised project meant to make session locking on DataStores easy and, for simplicity sake, that should remain the only thing ProfileService does.