Skip to main content

What can startups learn from Pokémon GO’s server scalability engineering?


What can startups learn from Pokémon GO’s server scalability engineering?



Actually Pokemon Go’s server availability is a big fat mess. 3 years ago I read an article on tech startup’s biggest problem being them thinking “too small” so IF they succeed, their poorly-planned limited resources make them lose a lot of potential profit. It’s funny that Niantic, a company that had 12 months to do heavy marketing research was overwhelmed by the success of their app.
They published the app for Germany while the servers were totally overcharged by the traffic coming from the USA and Australia, yet they decided to even grant other countries access, too. Most of the day, 80% of the Pokemon me and my mates catch get stuck in a ball which really makes us think about quitting the whole thing.
If you check reddit you will see that these server issues aren’t something only a small minority experiences - people from everywhere complain about this.
You just closed the app and want to open it again? Not too soon bro, it’s gonna be stuck loading unless you quit it again, activate airplane mode, open it again, wait for the “no internet” message and deactivate airplane mode as suggested in A Trick For Stuck Loading Screens • /r/TheSilphRoad

Youtube link:https://youtu.be/yWegwTO2plk











You bought and activated an item that lasts 30 minutes? Good luck getting past this message








Caught a rare pokemon? Too bad you won’t get past this screen, no matter how long you wait (if you are lucky, you might find it in your Pokemon list after logging in - if you can)







After you encounter these issues, NOTHING will happen automatically. Usually, you would put those pending server requests on a stack so the server can just work through them, one after another. If the server notices that he physically can’t reach the end of the stack, Niantic could just randomly pick users that are being notified they have to repeat the action which helps the server to clear up the stack a bit. However, if the connection fails just one time (e.g. you caught a Pokemon while leaving your Wifi so your phone switches to 3G) the app will still be active and you might see some animations going but you don’t get past the screen you are on right now. Why? The communication between server and app is set up so badly, neither of them get notified when one couldn’t message the other.

Imagine two people were given the instructions to only talk after the other one finished his sentence. Also, they are supposed not to repeat themselves. The conversation might go well until you interrupt one of them. Person A won’t repeat his sentence and person B will wait for A’s sentence. They will be sitting there in 10 years, waiting for each other to talk/reply. This is what’s going on with the servers.

  • I can’t understand why my phone has to download a few hundred kb when I click on a Pokemon. It’s right there! Why not make the app a bit bigger so you don’t have to waste tons of traffic just for the Pokemon models?
  • I click on a Pokestop and it shows me the picture of the POI it’s referring to. Why? I am right in front of it, I can see it with my own eyes!
  • 5 seconds later I click the Pokestop again and it takes a couple of seconds to download the picture again. Why the heck can’t they just cache it for a minute or two?
I can understand that the company might not generate enough revenue to afford better/ more servers but the servers would probably work at least 2 or 3 better if instead of buying new hardware, Niantic would just go through their code again. With a little bit of common sense, you wouldn’t even code an app like that, so these issues wouldn’t even exist. I can’t even say that they made the app like this because they had to meet some deadline because some of the things that could be fixed really don’t take much time or effort. Another possibility would be that Niantic didn’t even test the app, just threw one ball “it’s working!” and moved onto their next project. I’d even travel to US and fix this game for free because Niantic doesn’t seem to get there anytime soon and their app and server code is no rocket science.
All in all, it’s been a terrible experience for everyone I’ve spoken to so far and it’s definitely a good example how companies should NOT plan and distribute their resources. I also can’t understand how they didn’t just buy a fuck ton of servers in first instance: if the US doesn’t generate enough traffic, enable access to Australia. If they aren’t enough, continue with middle Europe and so on. It’s not like Pokemon Go was supposed to end up as a 1 million downloads app and although literally no one expected SUCH a demand for it, most people thought that this app is gonna drive AT LEAST 100 million downloads.
There isn’t even much to learn from this as almost everyone tries to optimize their products as good as they can but this company obviously does not. Now they try to fit in even more people in a ship that’s sinking just to sell them apples that they can’t eat when the boat doesn’t float anymore. Occasionally they are able to fix some issues so the boat starts floating again but in this very moment they invite some more people onto the boat so it starts sinking again.
I am just a boring app dev but I could list and probably even implement at least 5 major improvements on how to make the game suck less, I don’t understand why Niantic can’t.









Comments

Popular posts from this blog

Hanuman travelled to Patala Loka (South America) through a Tunnel worshipped in south America

Hanuman travelled to Patala Loka (South America) through a Tunnel worshipped in south America During battle between Rama and Ravana, Mahiravana, the step-brother of Ravana kidnaps Rama and Lakshmana and takes them to Patala Loka through a tunnel. Patala Loka is described to be exactly below earth (then India) and one has to go 70000 yojanas deeper in earth to reach to reach there. Mexico and Brazil are exactly below India and one has to dig a hole(tunnel) of that distance to travel vertically. There are few such tunnels which are said to be leading to Patala Loka. The Patalkot valley in the Chhindwara district of Madhya Pradesh, India is one among them. Ravana’s son Indrajit is killed by Lakshmana, Ravana calls his brother Ahiravana for help. Ahiravana, the king of Patala, promises to help. Vibhishana somehow manages to hear about the plot and warns Rama about it. Hanuman is put on guard and told not to let anyone into the room where Rama and Lakshmana are. Ahirav

How much does Kapil Sharma charge for a show?

 How much does Kapil Sharma charge for a show? Kapil Sharma's Monthly Income Is Way More Than Many Bollywood Actors' Fee Per Movie! When it comes to Indian television, Kapil Sharma undoubtedly rules the arena as far as comedy is concerned. Currently he's the only comic star on the Indian TV who is massively popular and is loved by the audience. Which of course means that Kapil and the rest of his team from The Kapil Sharma Show would be earning loads of money from the show. But wait till you get to know their daily income (yes, on per episode basis), and we bet your eyes will pop out! According to a latest report on DNA, Kapil Sharma earns Rs 60-80 lakhs per episode or  5 crores per month! It's definitely more than what some Bollywood actors make per movie! After Kapil, Sunil Grover has got to be the most popular celeb on the show. And he gets about 10-12 lakhs per day. Navjot Singh Sidhu and Sumona Chakravarti earns Rs 8-10 and 6-7 lakhs per da

What is the new technology learn for programmer?

What is the new technology learn for programmer? We all love something that is new… So, do a programmer… When you ask me that what are the new technologies to be learnt in 2016, I have a couple of them in my list. Top Programming languages and Platforms to Learn in 2016: Top Hottest Tech Skills to Acquire in 2016: Top Tech Trends of 2016: Hope by now you have enough topics to research on… Trendy Learning is an art… Enjoy Learning!!!