๐—จ๐—ฏ๐—ฒ๐—ฟโ€™๐˜€ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ ๐—ฎ๐˜€ ๐—ฎ ๐—š๐—œ๐—™

Amit Bhargav
1 min readAug 9, 2023

--

๐Ÿ”ท ๐—จ๐—ฏ๐—ฒ๐—ฟโ€™๐˜€ ๐—”๐—ฟ๐—ฐ๐—ต๐—ถ๐˜๐—ฒ๐—ฐ๐˜๐˜‚๐—ฟ๐—ฒ: A powerhouse that processes millions of requests daily, constantly evolving for optimal user service.

๐Ÿ”ท ๐—ž๐—ฒ๐˜† ๐—–๐—ผ๐—บ๐—ฝ๐—ผ๐—ป๐—ฒ๐—ป๐˜๐˜€: The familiar taxi app is supported by multifaceted tech that includes the Web Application Firewall (WAF), Load Balancer(LB), Kafka REST API, and Web Sockets.

๐Ÿ”ท ๐—ฅ๐—ถ๐—ฑ๐—ฒ ๐—•๐—ผ๐—ผ๐—ธ๐—ถ๐—ป๐—ด ๐—ฃ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€:

1๏ธโƒฃ User books a ride and the app forwards the request to the demand server.
2๏ธโƒฃ Demand server prompts the supply server for a nearby driver.
3๏ธโƒฃ Supply server uses Kafka REST API to fetch the latest driver location data.
4๏ธโƒฃ Demand server contacts the nearest driver. Once accepted, your ride is confirmed!

๐Ÿ”ท ๐—ฆ๐—ฐ๐—ฎ๐—น๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜† ๐—ฎ๐—ป๐—ฑ ๐—ฅ๐—ฒ๐—น๐—ถ๐—ฎ๐—ฏ๐—ถ๐—น๐—ถ๐˜๐˜†: Uberโ€™s architecture is designed to handle heavy traffic and ensure a smooth ride, even when there are bumps along the way.

๐Ÿ”ท ๐——๐—ฒ๐—ฒ๐—ฝ ๐——๐—ถ๐˜ƒ๐—ฒ ๐—ถ๐—ป๐˜๐—ผ ๐—ž๐—ฒ๐˜† ๐—–๐—ผ๐—บ๐—ฝ๐—ผ๐—ป๐—ฒ๐—ป๐˜๐˜€:

Web Application Firewall (WAF): A virtual shield that guards against malicious web traffic.

Load Balancer: Manages web traffic across multiple servers for optimal performance.

Kafka REST API: Consumes location data from drivers, acting as the systemโ€™s nerve center.

Web Sockets: Facilitates real-time communication between Uberโ€™s servers and users.

Check out the animated diagram below to better understand Uberโ€™s tech machine.

Credit to Chandresh Desai for this brilliant illustration! ๐Ÿ‘‡๐Ÿ˜Ž

#systemdesign #softwareengineering #architecture #uber

--

--

Amit Bhargav

Software developer passionate about Data Structures, Algorithms, and Optimization. Skilled in Java, C++, Python, AI, and Machine Learning.