Memory Store Queue read across all servers

  1. What do you want to achieve?

I’d like to store a table accessible to all servers that contains a list of all servers and the players in them.

  1. What is the issue?

I’m struggling to understand how I can use MemoryStoreQueues to achieve this, even though I know it’s possible based on the documentation (Memory Stores | Roblox Creator Documentation). I understand how priority queues work, which is mainly what this doc teaches, but it doesn’t cover how this would work in an example with multiple servers.

If the queue is shared across all servers and one server reads from it, then wouldn’t servers that haven’t yet read it miss this data? From ReadAsync doc:

This method does not automatically delete the returned items from the queue but makes them invisible to other ReadAsync calls for the period of the invisibility timeout.

Also what data would you send to the queue, the userId of the player added and the jobId of the server? Where does the table of servers and players live, in the queue or in each server?

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?

No luck on developer hub and docs mainly explain priority queues instead of how to set up a common system like matchmaking.

Not asking for a script, just hoping to get a better high level understanding of how this would work. Thanks.

I don’t think this is possible/practical with memory store queues. I would recommend using one sorted map key for this; access it as if you were accessing a datastore and update it as servers are created, players are added/removed, and servers are closed.

1 Like