System Design - Design Game Dashboard Friend Activity and Counts
[ OK ]8c97a23c-4554-4fdf-8b0a-7b03f898b78c — full content available
[ INFO ]category: System Design difficulty: unknown freq: first seen: 2026-05-28
[UNKNOWN][SYSTEM DESIGN]Medium Frequency
$catproblem.md
System Design - Design Game Dashboard Friend Activity and Counts
Problem Statement
Design a backend system for a Roblox game dashboard. The dashboard shows a list of games, and each game card should display social and popularity signals such as:
Which friends have played the game
The number of friends who have played the game
The total number of players who have played the game
The current number of players in the game
Constraints
Assume that the number of friends is less than 100.
Assume that the number of games is less than 1000.
Assume that the number of players is less than 10,000.
Examples
If a user has 5 friends who have played a game, the dashboard should show those 5 friends and the count "5 friends have played this game."
If a game has been played by 200 players in total, the dashboard should display "200 players have played this game."
If there are currently 30 players in the game, the dashboard should display "30 players are currently in the game."
Hints
Consider using a caching layer to store friend activity and player counts for faster retrieval.
Think about how to efficiently update the counts when a new player joins or leaves a game.
Consider the trade-offs between consistency and latency when designing the system.
Solution (Not Found)
Unfortunately, I was unable to find a complete solution for this problem on the web. However, I can provide some general guidance on how to approach this system design problem:
Data Modeling: Create tables for users, friends, games, and game plays. You can use a relational database like MySQL or a NoSQL database like MongoDB, depending on your preference.
Caching: Use a caching layer like Redis to store friend activity and player counts for each game. This will help reduce database reads and improve performance.
Real-time Updates: Use a pub/sub model or WebSockets to update the dashboard in real-time when a new player joins or leaves a game.
Consistency: Use eventual consistency to ensure that the dashboard displays the most up-to-date information without sacrificing performance.
Scalability: Design the system to be scalable by using a microservices architecture and load balancing.
I hope this helps you get started on designing the backend system for the Roblox game dashboard. Good luck!