Let’s take a look at the different access patterns we need to model the data for.
The users of the gaming application need to create user profiles. These profiles include data such as a user name, avatar, game statistics, and other information about each user. The game displays these user profiles when a user logs in. Other users can view the profile of a user to review their game statistics and other details.
As a user plays games, the game statistics are updated to reflect the number of games the user has played, the number of games the user has won, and the number of kills by the user.
Based on this information, you have three access patterns:
The game is an online multiplayer game similar to Fortnite or PUBG . Players can create a game at a particular map, and other players can join the game. When 50 players have joined the game, the game starts and no additional players can join.
When searching for games to join, players may want to play a particular map. Other players won’t care about the map and will want to browse open games across all maps.
Based on this information, you have the following seven access patterns:
Finally, let’s consider the access patterns during and after a game.
During the game, players try to defeat other players with the goal of being the last player standing. The application tracks how many kills each player has during a game as well as the amount of time a player survives in a game. If a player is one of the last three surviving in a game, the player receives a gold, silver, or bronze medal for the game.
Later, players may want to review past games they’ve played or that other players have played.
Based on this information, you have three access patterns:
You have now mapped all access patterns for the gaming application. In the following modules, you implement these access patterns by using DynamoDB.
Note that the planning phase might take a few iterations. Start with a general idea of the access patterns your application needs. Map the primary key, secondary indexes, and attributes in your table. Go back to the beginning and make sure all of your access patterns are satisfied. When you are confident the planning phase is complete, move forward with implementation.