{"id":25176,"date":"2023-11-01T12:44:44","date_gmt":"2023-11-01T12:44:44","guid":{"rendered":"https:\/\/www.emizentech.com\/blog\/?p=25176"},"modified":"2023-11-01T12:49:29","modified_gmt":"2023-11-01T12:49:29","slug":"uber-tech-stack-software-architecture","status":"publish","type":"post","link":"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html","title":{"rendered":"Uber Tech Stack &amp; Software Architecture &#8211; How Was Uber Built?"},"content":{"rendered":"\n<p>Uber has become a household name. The incredible platform enables users to book cab service in only four simple steps. The Uber app guarantees quick service as well as optimal convenience, no wonder it has exploded in popularity.<\/p>\n\n\n\n<p>Did you know that Uber has&nbsp;<strong>98 million<\/strong> monthly active users? Also, the company generated<strong>&nbsp;$11.1 billion in revenue&nbsp;in 2020<\/strong>? Uber has set a classic example for startups and existing taxi services. Every organization is aiming to replicate the success of Uber by offering quick and convenient taxi-hailing services.<\/p>\n\n\n\n<p>If you are also awed by the immense success of Uber, this article is for you. Here, we will discuss the Uber tech stack and software architecture, and this will give you a better understanding of the platform and help you build your taxi services app from scratch. So, let\u2019s get started.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #007db2;color:#007db2\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #007db2;color:#007db2\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html#How_Do_I_Build_A_Real-Time_App_Like_Uber\" >How Do I Build A Real-Time App Like Uber?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html#How_To_Build_The_Next_Uber\" >How To Build The Next Uber?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html#How_Does_The_Uber_App_Technically_Work\" >How Does The Uber App Technically Work?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html#Requirements_for_Uber-Like_Projects\" >Requirements for Uber-Like Projects<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html#What_Is_The_Tech_Stack_Behind_The_Food_Delivery_App_Uber\" >What Is The Tech Stack Behind The Food Delivery App Uber?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/uber-tech-stack-software-architecture.html#What_Programming_Languages_Can_I_Use_To_Create_A_Food_Delivery_App_Like_Uber\" >What Programming Languages Can I Use To Create A Food Delivery App Like Uber?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_Do_I_Build_A_Real-Time_App_Like_Uber\"><\/span>How Do I Build A Real-Time App Like Uber?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To build a real-time app like Uber, you must first understand the different components of it, which are as follows:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Passenger app<\/h3>\n\n\n\n<p>If you have used the Uber app before, you will easily identify with the passenger app functionality. This component of the app has all features that the users require to book a cab, such as choosing the ride, fare calculator, online payments, GPS tracking, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Driver app<\/h3>\n\n\n\n<p>The driver\u2019s app is used by taxi drivers that show new cab requests from passengers. Using this panel, the drivers can either accept or decline ride requests and check the passenger\u2019s exact location using the built-in map.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Marketplace<\/h3>\n\n\n\n<p>The marketplace connects the two applications-Passenger app and the Driver app. It carries out the most complicated tasks that involve matching the passengers with the drivers and handling payments.<\/p>\n\n\n\n<p>So, if you wish to create an app like Uber, you will require three different panels. The first panel will enable passengers to book a cab, and the second panel will allow the drivers to accept ride requests. And finally, a third panel will receive requests from the first two and manage all online operations.<\/p>\n\n\n\n<p>Building a real-time app like Uber involves several steps, from conceptualization to deployment. Here&#8217;s a step-by-step guide to help you understand the process in short<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Step<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>1. Purpose &amp; Features<\/strong><\/td><td>Define the app&#8217;s primary goal and list essential features.<\/td><\/tr><tr><td><strong>2. Tech Stack<\/strong><\/td><td>Choose technologies for backend, frontend, real-time data, database, cloud services, and payment gateways.<\/td><\/tr><tr><td><strong>3. UI Design<\/strong><\/td><td>Design an intuitive user interface and ensure consistency across screens.<\/td><\/tr><tr><td><strong>4. Backend Development<\/strong><\/td><td>Set up servers, databases, APIs, and ensure data security.<\/td><\/tr><tr><td><strong>5. Frontend Development<\/strong><\/td><td>Develop apps for drivers and users; integrate with backend.<\/td><\/tr><tr><td><strong>6. Third-party Integration<\/strong><\/td><td>Integrate GPS, payment gateways, and notification services.<\/td><\/tr><tr><td><strong>7. Testing<\/strong><\/td><td>Conduct various tests to ensure the app&#8217;s functionality and fix bugs.<\/td><\/tr><tr><td><strong>8. Deployment<\/strong><\/td><td>Host on a cloud service and publish mobile apps on app stores.<\/td><\/tr><tr><td><strong>9. Post-launch Activities<\/strong><\/td><td>Monitor performance, gather feedback, and implement marketing strategies.<\/td><\/tr><tr><td><strong>10. Continuous Improvement<\/strong><\/td><td>Use analytics to understand user behavior and make regular updates.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>If you want to understand the process in more detail, check out this article on <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/taxi-booking-app-development.html\">taxi booking app development<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_To_Build_The_Next_Uber\"><\/span>How To Build The Next Uber?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Uber is a highly successful taxi-hailing service that offers ultimate convenience to passengers. Developing an app like Uber may involve a significant amount of money and a competent app development team.<\/p>\n\n\n\n<p>Apart from that, there are a few other things to consider while developing an app like Uber.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check out Your Competitors.<\/h3>\n\n\n\n<p>It is a great idea to search for apps that are currently attempting to solve the same problem you seek to address with your app. Looking at these apps will help you gather an idea about their features, functionalities, as well as target audience.<\/p>\n\n\n\n<p>Additionally, a thorough look at the competitive landscape will help you understand how your competitors operate. For instance, checking their social media will enable you to gather insights about their marketing strategy, product evolution, and customer satisfaction ratings. All this will go a long way in helping you launch a successful app.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Know Your Potential Users<\/h3>\n\n\n\n<p>Before jumping into app development, you need to know who will use your app. Only if you know your target audience will you be able to properly communicate with them.<\/p>\n\n\n\n<p>You can gather all demographic data of your potential users, such as age, location, gender, behaviors, preferences, etc. Once done, you can discuss your app\u2019s idea with those people you think highly of.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stay Focused on User Experience.<\/h3>\n\n\n\n<p>User experience is one of the key aspects of a successful app. People want to use apps that offer a simple yet <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/app-design-best-practices.html\">intuitive UI<\/a> and UX. A stunning UI offers a seamless navigation experience, and an intuitive UX ensures ease of use.<\/p>\n\n\n\n<p>Providing a good user experience leads to better user acquisition and greater downloads.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Test with An MVP<\/h3>\n\n\n\n<p>A minimum viable product (MVP) is the first basic version of the product that supports minimal yet crucial features. Creating an MVP before developing a full-fledged app is advisable as it enables faster time to market, attracts early adopters, and accomplishes a product-market fit from early on.<\/p>\n\n\n\n<p>Once the MVP is released to the users, their initial feedback is obtained. Based on this feedback, you can reiterate, <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/mobile-app-testing.html\">fix bugs<\/a>, and introduce new features that will provide your product with a competitive advantage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_Does_The_Uber_App_Technically_Work\"><\/span>How Does The Uber App Technically Work?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"821\" height=\"1024\" src=\"\/blog\/wp-content\/uploads\/sites\/2\/2022\/01\/how-uber-works-821x1024.png\" alt=\"how uber works\" class=\"wp-image-25469\" srcset=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/01\/how-uber-works-821x1024.png 821w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/01\/how-uber-works-241x300.png 241w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/01\/how-uber-works-768x958.png 768w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/01\/how-uber-works-1232x1536.png 1232w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/01\/how-uber-works.png 1576w\" sizes=\"(max-width: 821px) 100vw, 821px\" \/><\/figure>\n\n\n\n<p>The Uber app processes a vast amount of data leveraging the ML and data analytics platforms that are developed in-house. When a passenger requests a cab, a lot of data is generated. For instance, the app receives data about the passenger, his location, credit card info, ride cost, nearby taxi drivers, etc. And gradually, all this information travels across the entire system. Let\u2019s see how.<\/p>\n\n\n\n<p>Once a ride is requested, the platform:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Saves all the ride information on the database<\/li>\n\n\n\n<li>Processes the ride request with the passenger\u2019s geolocation<\/li>\n\n\n\n<li>Sends all the processed data to the matching algorithm powered by ML<\/li>\n\n\n\n<li>Looks for information about drivers present nearby in the database<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"768\" height=\"294\" src=\"\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Tech-Stack-Storage-Overview-of-uber.png\" alt=\"Tech Stack Storage Overview of uber\" class=\"wp-image-25164\" srcset=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Tech-Stack-Storage-Overview-of-uber.png 768w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Tech-Stack-Storage-Overview-of-uber-300x115.png 300w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Tech Stack Storage Overview of <a href=\"https:\/\/eng.uber.com\/uber-tech-stack-part-two\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">uber<\/a><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Requirements_for_Uber-Like_Projects\"><\/span>Requirements for Uber-Like Projects<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Uber was launched in 2009, and for the longest time, the platform had a backend with a monolithic architecture. In other words, the app used a single database along with several app servers to manage all online requests.<\/p>\n\n\n\n<p>For the initial period, this worked just fine. However, as the platform grew, the need for new features also surged. And to integrate new features, the development team had to deploy all the code at once. This affected the app\u2019s speed and made the process of introducing new features extremely risky and time-consuming. This is because every integration could potentially bring the entire system down. This led to the adoption of microservices architecture.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Microservices<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"512\" height=\"436\" src=\"\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Ubers-microservice-architecture-circa-mid-2018-from-Jaeger.png\" alt=\"Uber\u2019s microservice architecture circa mid-2018 from Jaeger\" class=\"wp-image-25166\" srcset=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Ubers-microservice-architecture-circa-mid-2018-from-Jaeger.png 512w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Ubers-microservice-architecture-circa-mid-2018-from-Jaeger-300x255.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><figcaption class=\"wp-element-caption\"><em><a href=\"https:\/\/eng.uber.com\/microservice-architecture\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Uber\u2019s microservice architecture<\/a> circa mid-2018 from Jaeger<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In 2014, Uber adopted the microservices architecture to ensure better speed and performance. Essentially, this architecture includes a group of services targeted to one another\u2019s functionality. Thus, the development team can easily deploy new code independently with the microservices architecture, ensuring complete system scaling.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DOMA (Domain-Oriented System Architecture)<\/h3>\n\n\n\n<p>Although microservices architecture was a huge upgrade to the monolithic architecture, the development team at Uber didn\u2019t stop there. They adopted a new approach called DOMA- Domain-Oriented System Architecture with time.<\/p>\n\n\n\n<p>According to this approach, the developers orient their design around collections of related microservices. And these collections are called domains. Furthermore, the domains are also classified into different collections called layers. The specific layer that each domain belongs to establishes what dependencies the microservices within that domain can take on. This is called layer design.<\/p>\n\n\n\n<p>The developers then make every domain independent from the others by using Gateway API. Thus, every domain has its own logic and is not related to the other domains inside the same layer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"574\" src=\"\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Gateway-API.png\" alt=\"Gateway API\" class=\"wp-image-25162\" srcset=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Gateway-API.png 696w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Gateway-API-300x247.png 300w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/Gateway-API-370x305.png 370w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><figcaption class=\"wp-element-caption\"><em>gateway showing internal details of the domains \u2013 multiple services, data tables, ETL pipelines, etc.<\/em><\/figcaption><\/figure>\n\n\n\n<p>In simple words, by providing an organized architecture, predefined extension points, and domain gateways, DOMA transforms the microservices architecture from something complicated to something that is easily comprehensible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which UI Framework Does Uber Use?<\/h3>\n\n\n\n<p>Uber\u2019s design team focuses on constantly upgrading the <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/app-design-best-practices.html\">app\u2019s design<\/a> by adding new features. However, this is a time-consuming process. So, to streamline the design team\u2019s efforts, they have created a <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/flutter-vs-react-native.html\">React UI framework<\/a> called Base.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"362\" src=\"\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/strength-meter-designed-with-base-web-framework.gif\" alt=\"strength-meter designed with base web framework\" class=\"wp-image-25163\"\/><figcaption class=\"wp-element-caption\">strength-meter designed with <a href=\"https:\/\/baseweb.design\/blog\/getting-started-with-base-web\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">base web framework<\/a><\/figcaption><\/figure><\/div>\n\n\n<p>Base includes pre-designed Uber app elements, such as colors, grids, typography, lists, buttons, and iconography. The framework has enabled the design team to create designs at a faster pace while maintaining high UI\/UX standards and consistency.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_Is_The_Tech_Stack_Behind_The_Food_Delivery_App_Uber\"><\/span>What Is The Tech Stack Behind The Food Delivery App Uber?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In 2014, Uber\u2019s backend included languages like <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/why-python-used-for-machine-learning.html\">Python<\/a>, Mongo, and MySQL. On the other hand, the dispatch system used Node.js and Redis, whereas the mobile apps were powered by Java and Objective-C. However, as the requirements evolved, developers changed almost all of the platform\u2019s components.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Marketplace Technologies Stack<\/h3>\n\n\n\n<p>Uber\u2019s marketplace is an important aspect that manages all data streaming and data analytics. And the tech stack used for building this marketplace includes languages like Python, Go, <a href=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/kotlin-vs-java.html\">Java<\/a>, and Node. Now let\u2019s have a look at this marketplace technologies stack in detail:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">The trip execution engine<\/h4>\n\n\n\n<p>Since the trip execution engine is an integral part of the marketplace, it was originally written in <a href=\"https:\/\/multisitelocal.ezxdemo.com\/nodejs-development.html\">Node.js<\/a>, which was preferred for its asynchronous, simple, and single-threaded processing. Node.js also allowed the Uber team to manage large quantities of concurrent connections. However, now, the company creates new services in Go, which is known for its efficiency, concurrency, and type-safe operations.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">The frontline API<\/h4>\n\n\n\n<p>The frontline API directs requests from the driver and passenger mobile devices to other APIs and services. This is written in Node.js, except at the edge. It uses NGINX for the front end and performs SSL termination and some authentication.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Real-time connection<\/h4>\n\n\n\n<p>To seamlessly support the highest availability demands, the marketplace stack must receive information in real-time. Thus, the developers use Ringpop, a library for erecting cooperative distributed systems. Owing to this library, the developers get a highly-available connection with distributed databases such as Riak and DynamoDB.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">The matching logic<\/h4>\n\n\n\n<p>The matching algorithm, i.e., the system that manages alerts from drivers and riders in real-time and then matches them, are written in Go and Node.js. Riak is their distributed database, whereas Redis offers caching.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Dynamic pricing optimization<\/h4>\n\n\n\n<p>The marketplace team at Uber manages optimization and balance all through dynamic pricing, intelligent matching, and supply positioning. Earlier, most parts of this stack were built using Python with Flask and uWSGI. However, now, the developers are replacing most Python with Go to achieve greater performance.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Data streaming and machine learning<\/h4>\n\n\n\n<p>Uber uses Kafka and its own production databases for data streaming. And data storage depends on Hive, HDFS, Elasticsearch, MapReduce, and file storage web services. The company has also developed its own LIDAR that ensures internal sharing. The LIDAR runs Jupyter, JupyterHub, integrated with Apache Spark and their own data platform.<\/p>\n\n\n\n<p>Moving on, it is noteworthy to note that Uber has its own ML platform. In 2015, the company decided to scale ML in order to standardize tools and workflows and avoid ML anti-patterns. Consequently, they developed Michelangelo in 2017.<\/p>\n\n\n\n<p>Michelangelo is an AI and ML-powered platform that helps to manage data, evaluate and deploy models, make trend forecasts, and monitor prognosis. The ML platform comprises a mix of open source systems and in-house components such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HDFS<\/li>\n\n\n\n<li>Samza<\/li>\n\n\n\n<li>Spark<\/li>\n\n\n\n<li>MLLib<\/li>\n\n\n\n<li>TensorFlow<\/li>\n\n\n\n<li>Cassandra<\/li>\n\n\n\n<li>XGBoost<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"516\" src=\"\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/UberEATS-app-estimated-delivery-time-feature.png\" alt=\"UberEATS app estimated delivery time feature\" class=\"wp-image-25167\" srcset=\"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/UberEATS-app-estimated-delivery-time-feature.png 768w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/UberEATS-app-estimated-delivery-time-feature-300x202.png 300w, https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2021\/07\/UberEATS-app-estimated-delivery-time-feature-270x180.png 270w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\"><em><a href=\"https:\/\/eng.uber.com\/michelangelo-machine-learning-platform\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">UberEATS app hosts an estimated delivery time feature<\/a> powered by machine learning models built on Michelangelo.<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Stack Technologies of A Web Application<\/h3>\n\n\n\n<p>For the web-based app, the Uber developers use Node.js, an open-source platform with a huge community of web engineers. Node.js also enables the developers to share JavaScript code between the server and client to create universal web applications. Lastly, they use Browserify for all client-side bundling as it comes with Node. js-based module requirements.<\/p>\n\n\n\n<p>Uber\u2019s web server called Bedrock is built on Express.js, a popular web framework that offers complete security and internalization. Their in-house service communication layer, known as Atreyu manages all communication with backend services as well as integrates with Bedrock. This communication layer also enables the company to make requests to their SOA service APIs easily and quickly.<\/p>\n\n\n\n<p>Uber uses standard Flux and React.js for application rendering and state handling. The build system, Core Tasks, is a pre-defined group of scripts to compile and version frontend assets that are built on Gulp.js.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stack Technologies of A Mobile Application<\/h3>\n\n\n\n<p>To develop an app like Uber, you need to create four different mobile apps: Android passenger, Android driver, iOS passenger, and iOS driver. Developers create IOS apps using Objective-C and Swift programming language, whereas Android app is developed using Java. But apart from them, there are few other technologies used by the developers. These include:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Android app tech stack<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gradle<\/li>\n\n\n\n<li>OkHttp\/Gson\/Retrofit<\/li>\n\n\n\n<li>Butter Knife<\/li>\n\n\n\n<li>Dagger<\/li>\n\n\n\n<li>Espresso<\/li>\n\n\n\n<li>Picasso<\/li>\n\n\n\n<li>RxJava<\/li>\n\n\n\n<li>Timber<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">iOS app tech stack<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Buck<\/li>\n\n\n\n<li>Masonry\/ SnapKit<\/li>\n\n\n\n<li>KSCrash<\/li>\n\n\n\n<li>OCMock<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_Programming_Languages_Can_I_Use_To_Create_A_Food_Delivery_App_Like_Uber\"><\/span>What Programming Languages Can I Use To Create A Food Delivery App Like Uber?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>If you want to develop an app like Uber, you can opt to integrate the following technologies:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Node.js \u2013 for Marketplace web app<\/li>\n\n\n\n<li>Python \u2013 for web-based booking app<\/li>\n\n\n\n<li>Go- for improved performance and speed<\/li>\n\n\n\n<li>Browserify \u2013 for client-side bundling<\/li>\n\n\n\n<li>Java \u2013 for third-party service integrations<\/li>\n\n\n\n<li>Apache Hive data warehouse \u2013 for analytics and data query<\/li>\n\n\n\n<li>ELk \u2013 for storing logs, processing, and shipping<\/li>\n\n\n\n<li>Apache Cassandra \u2013 for managing huge volumes of data<\/li>\n\n\n\n<li>MySQL Database Service- for relational database management<\/li>\n\n\n\n<li>Docker \u2013 for data center infrastructure<\/li>\n\n\n\n<li>HAProxy \u2013 for proxy server and load balancer<\/li>\n<\/ul>\n\n\n\n<p>This is a quick roundup of Uber\u2019s technology stack. However, simply copying this tech stack without doing your own research can be detrimental to your business model. Also, applying the same technologies will not guarantee success for your cab-hailing business.<\/p>\n\n\n\n<p>So, it is advisable to build your app with a few technologies as possible. Gradually, as your business expands, you can keep on adding newer features by leveraging newer technologies. You must only use Uber\u2019s tech stack as a source of inspiration to get started.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uber has become a household name. The incredible platform enables users to book cab service in only four simple steps. The Uber app guarantees quick service as well as optimal convenience, no wonder it has exploded in popularity. Did you know that Uber has&nbsp;98 million monthly active users? Also, the company generated&nbsp;$11.1 billion in revenue&nbsp;in<\/p>\n","protected":false},"author":41,"featured_media":40245,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"MSN_Categories":"Uncategorized","MSN_Publish_Option":false,"MSN_Is_Local_News":false,"MSN_Is_AIAC_Included":"Empty","MSN_Location":"[]","MSN_Add_Feature_Img_On_Top_Of_Post":false,"MSN_Has_Custom_Author":false,"MSN_Custom_Author":"","MSN_Has_Custom_Canonical_Url":false,"MSN_Custom_Canonical_Url":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[81],"tags":[],"class_list":{"0":"post-25176","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-mobile-app-development"},"modified_by":"Marketing EmizenTech","featured_image_src":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/11\/Uber-Tech-Stack-600x400.jpg","featured_image_src_square":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/11\/Uber-Tech-Stack-600x408.jpg","author_info":{"display_name":"Naren Bhati","author_link":"https:\/\/multisitelocal.ezxdemo.com\/blog\/author\/naren"},"_links":{"self":[{"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/posts\/25176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/comments?post=25176"}],"version-history":[{"count":1,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/posts\/25176\/revisions"}],"predecessor-version":[{"id":40989,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/posts\/25176\/revisions\/40989"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/media\/40245"}],"wp:attachment":[{"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/media?parent=25176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/categories?post=25176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multisitelocal.ezxdemo.com\/blog\/wp-json\/wp\/v2\/tags?post=25176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}