I am currently developing a cross-server matchmaking system that allows players to load into matches efficiently using MemoryStoreService.
I believe Memory Store Queues are the best way to go about this. However, I’ve also taken note that dozens of servers requesting data like :ReadAsync() or :AddAsync() will most likely greatly exceed the 1000 + 100 * [number of concurrent users] request limit ![]()
I’ve taken note of things such as Sharding, which stores multiple small data structures, rather than one big data structure.
What are some ways of preventing these issues? I’ve spent a good amount of time researching things that could help me / educate me better, but I’m still not 100% sure ![]()
-- Should the queue be split into three different "shards", like this:
local MatchmakingQueue1 = MemoryStoreService:GetQueue("MatchmakingQueue1")
local MatchmakingQueue2 = MemoryStoreService:GetQueue("MatchmakingQueue2")
local MatchmakingQueue3 = MemoryStoreService:GetQueue("MatchmakingQueue3")
-- Or put into one big structure, like this:
local MatchmakingQueue = MemoryStoreService:GetQueue("MatchmakingQueue")
Any tips are greatly appreciated!