Session

Building Highly Concurrent, Low Latency Gaming System with Redis

Speaker(s): Suraj Sharma

“No datastore is good or bad, it depends on the use case in question” Keeping this statement in mind, we listed down our use cases and requirements in the quest of building a robust game engine service with a very high level of concurrency. A lot of our asks demanded stuff to be done with sub-millisecond latency on shared data, which led us to explore an in-memory database. Having read about the success stories of redis, we decided to do some POCs with a small redis cluster. The numbers of our test results were very encouraging. As we moved along with new features and problems to be solved, we realized that redis could solve many other of our pain points apart from serving as a fast data look-up store.

To give you a sense of scale that we could achieve on production using redis cluster,
– 1 million concurrent user connections at peak
– 500K contests
– 4 million user teams joined in the biggest contest
– 5 million redis IOps reached

Let me list down the areas where we practically observed redis to be our savior:

– caching layer for read performance
– in-memory distributed caching
– concurrency management
– leaderboard
– task distribution
– managing transactions using lua