I have a large game engine which serves mobile phone clients and a web site. The DB is MSSQL2008 and the engine is written using C#.
The web site is built with ASP.NET MVC and the web service for the mobile phones is also built on ASP.NET MVC (probably will be migrated to WCF or pure socket server).
The web site and the web service are located on an IIS 7 server and the DB is located on a dedicated server. Both are connected on a local fast LAN.
The game requires real-time response (under 1 sec) for each user. When I did some load testing on the service - it seemed that on ~250 users it reached 1 second response (at 50 it was about 200ms). It should support well over 10000 users connected. (Server replication I guess).
I thought about adding one more layer - a dedicated real-time server for the game web service. I've heard that Python could be used to build very high performance services - would that be a clever idea to add this layer? (the layer should have in-memory temporary database to serve the real time players and then dump it all to the back-end DB every X seconds).
Is my architecture any good? How could that be improved?