Storing static, frequently requested, data

Say I’m building ‘Word with Friends’. Because it’s a turn based game, storing the game state after each turn could allow any person to view a replay of a specific game once it is over. What would be an ideal way to store this now static game data that reduces server load & database requests to Nakama? A CDN of some sort?

@Ndidi How large do you expect the game state to be after a match is over? When a match is finished is the game replay data treated as immutable or can the data still change (for example if other players “like” the match replay)?

@novabyte, I expect game data (currently stored in JSON) to be no bigger than 500kb. Once played, the only changes are upvoting/downvoting by other users.

The 2 approaches I see are:

  1. Don’t bother with a static solution for the game, and store the votes in the same object
  2. Create a static solution and store votes in their own location.

Once played, the only changes are upvoting/downvoting by other users.

@Ndidi This is not what I would call mostly static data. I think you’ll need to describe the data and its purpose in more detail. It will be difficult to suggest the best approach otherwise.