I am looking to implement a tournament system in Nakama where users that join the tournament get assigned to a fixed-capacity leaderboard. When the leaderboard reaches its capacity, the next person that joins the tournament gets assigned to a new leaderboard (this new leaderboard should be created and owned by the server, not the player). Players are assigned to each leaderboard in sequence; no matchmaking is necessary to assign players of similar skill to a leaderboard, and there should be no limit to the number of leaderboards that can be created this way. When the tournament comes to an end, the top players on each leaderboard are awarded a prize, and the leaderboards are deleted a few days later so that each player’s ranking can be viewed for the few days following the tournament.
For example, players get notified that a tournament has started, either through a notification or by logging into the game and seeing a user interface element showing them that a tournament has begun. The player optionally chooses to join the tournament by clicking the user interface element, and is then immediately assigned to a leaderboard with up to 49 other players. When the tournament ends, the player enters the game and can view the leaderboard, along with their final ranking, and claim any prizes they may have been awarded as a result of their final ranking in the tournament.
What would be a good way to approach creating such a system while ensuring the system remains scalable in Nakama?