Call me crazy, call me stupid. I’m preparing a project where I will simulate the possible behaviour of the Steam database as an ASP.NET MVC solution. My goal is to prove that it could be possible to have a database as large as the Steam database with a similar payload and still have an adequate community API which doesn’t sacrifice flexibility, comfort and data delivery for performance savings. I understand this project more than a prototype for the Steam Community API and therefore will focus completely on a redesigned web service interface and its according data layer.
Of course I won’t be able to really simulate the usual payload which the Steam servers are fighting with and that’s really not important. I will be able to simulate an adequate payload and scale it to simulate something like a daily server load.
With the above information and the idea to get the best out of the prototype I will design the prototype with the following figures in mind assuming that the numbers represent the most realistic scenario possible:
- amount of registered users in database: 35.000.000 users
- amount of games in database: 20.000 games
- avg amount of users online: 5.000.000 users/online
- avg amount of games per user: 1000 games/user
- avg amount of friends per user: 500 friends/user
- avg amount of items in inventory: 100 items/inventory
some of these figures are just estimated but they are totally OK for our prototype and the test we will run to measure performance and behaviour of our Steam Web API.
As I said above this prototype will be developed in ASP.NET MVC making use of Web API as the service endpoint. While I’m already working on the database and the application design I’m curious what you guys think about this project. Will I be able to achieve my goal and prove that even databases that large are able to provide a decent API which stills performs under a usual or even heavy database payload?
Any comments, suggestions, critics are welcome.