How is Uber using JavaScript & Node JS?
Nobel Chowdary Mandepudi
Graduate Software Engineer at Arm (Infrastructure Engineering) | UF Alumni | Ex Intern at Arm and AT&T
Uber is a global transportation company, headquartered in San Francisco, CA. The company is doubling in size every 6 months, operates in 6 continents, 68 countries, 633 cities worldwide. Since its launch in 2012, Uber has become one of the most recognized alternatives to a traditional taxi. Therefore, Uber needs a platform that will keep running no matter what.
Their app connects driver-partners and riders, thus, it has to process an enormous amount of information at a fast-growing scale. Uber chose Node.js, a framework of JavaScript to build its massive matching system due to its ability to keep up with the pace of Uber’s huge business needs and enhanced data processing capabilities.
Scaling up according to the rising demand for mobile taxi services is another factor. Uber needed a system to be reliable both to customers and drivers. Why have they chosen Node.js and JavaScript in general? Uber states three main reasons for their Node.js project:
- It processes large amounts of data quickly and reliably
- Convenient error analysis and quick code deployment
- Constant technology improvement due to open source community
To prove their Node.js app success, Uber is now able to process over 2 million remote procedure calls (RPC) per 1 second. Even at peak times. Impressive!
Quote of Uber’s Senior Staff Engineer - Matt Ranney:
“One of the things that make Node.js uniquely suited to running in production is that you can inspect and change a program without restarting it. So very few other languages offer that capability. Not a lot of people seem to know that ability exists, but indeed you can inspect and even change your program while it’s running without restarting it.”
Of the companies that use Node.js, Uber was one of the first to use the framework to its fullest extent by building the bulk of the Uber platform in Node.js.
Benefits of Node.js for Uber:
- Quick and reliable processing of extreme amount of data
- Elimination of errors without the need to restart
- Quick deployment of the new code
- Strong open source community that constantly develops new solutions
Finally, I don’t want to plant the idea that Node.js is a “silver bullet”. It might not be the best solution for all cases, but it is always wise to evaluate your possibilities and understand the potential benefits of this technology and have the optimistic performance of JavaScript in the similar way that Uber enjoys it.