Hello everyone. As you all probably know, the Bloxy Awards are here, and seats are already all booked. I was very intrigued when I went and saw how you book the seats: If a seat is sold it shows the play name who sold it, if it is open you can click on it and it will "reserve" for a minute while you decide to buy it, and if you buy it it will but a sold sign on the chair and show your name as the seat owner. And all this happens game-wide through many servers.
I was thinking of how this would work. I thought Ordered Data Stores would work, maybe checking for any differences every second and updating that server depending on the information given. But then there would be the obstacle where there is a limit to how many time you could call a Data Store. Also, what if two players in two different servers the click the same chair at the same time?? Refreshing every second wouldn't be enough I would think, maybe every half a second.
I wanted to get your opinions on how they do it. I know, I know, this is Roblox themselves who made the seat reserving place and they can pretty much do whatever they want to their game to make it work. I just wanted to see if anyone knew how it could possibly be done. Thanks for reading this block of text!

3 comments
Thanks for the answer. I knew about Products, but haven't heard about the OnUpdate function of DataStoreService! Thanks for your answer!
I just looked it up on the Wiki, and it seems to be the answer to my question! EXCEPT that they need to call it for EVERY seat in the auditorium... which has about 5000 seats according to the bio of the game..... I mean that is where Roblox comes in, probably removing the limit? Or they could have a global data store that tells the seat number being reserved or bought and go from there.
It isn't likely for all 5,000 of those seats to be reserved in less than a minute. ROBLOX's datastore does indeed have limits, not to mention not everyone is purchasing the seats right on the spot.