The Pokémon Go app is incredibly successful. During its’ initial launch period it has been downloaded more times than either Facebook and Twitter apps in equivalent time periods. SensorTower currently ranks Pokémon Go the most downloaded free app and the top grossing paid app in the U.S. and estimates that it’s generating $1.6 million dollars per day in iOS revenue alone. We’d also guess there are a record number of blog posts trying to slipstream off the Pokémon Go phenomena. Sorry to join those ranks, but it’s not all Razz Berry and Lucky Eggs in the world of Pokémon Go. Not only are there concerns of people paying more attention to the app than oncoming traffic or trespassing while training their Pokémon, but there are widespread reports of users experiencing Pokémon-catching crashes, screen freezes and of people not being able to get into their apps. Much of this can be expected with the unprecedented growth, but maybe Pikachu should have chatted with Basho while building the app.
As an old friend of Basho’s says, “Everything works at small scale. Understand failure modalities to understand your realities.” The Pokémon Company and Niantic (the app developer) are coming to grips with this now. Availability is key to app success and the future of Pokémon Go will largely be tied to mastering this art. Architectures are moving from small apps, big servers and one location to big apps, commodity servers, and many locations. This shift in architectural patterns is a continuing trend and is critical for companies to embrace, especially as it’s likely to be accelerated by the growth in IoT applications.
At Basho we’ve been in the distributed systems game for some time helping customers, such as Uber build some of the world’s most highly trafficked applications. In the gaming sector, Bet365 and Riot Games’ League of Legends are just a sample of some of the apps using Riak to:
- Store player data,
- Store and serve session data with predictable low-latency,
- Scale globally with Riak’s multi-clustering capabilities, and
- Storing and serve social content, such as social graph information, player profiles, player relationships and social authentication accounts.
By using Riak, companies have achieved global availability and massive scalability, while still maintaining operational simplicity. These benefits are derived from the core architectural decisions made in the design of Riak. This blog post Gaming and Betting Companies Find Success with Riak has some great insight on why gaming companies choose Riak, with some links to customers themselves speaking about the virtues of Riak.
There are the growing pains with any new online game, but building an infrastructure that can cope with over 20 million downloads/players in such a short amount of time would be a challenge for even the most experienced app developer. So Pikachu, come meet Basho Man, we speak the same language: the need for massively scalable distributed systems, and that’s a great start to a relationship.