Uber/Ola Low Level System Design explained with CODE, UML Diagram | Easy & Detailed Explanation!!

You asked for it and it’s here. If you have ANY doubts, I am here to solve that as well!
If you like my work, Please 𝐬𝐮𝐛𝐬𝐜𝐫𝐢𝐛𝐞 here - / keertipurswani
Here's the Code and UML Diagram for reference-
github.com/keertipurswani/Ube...
You can also connect with me on-
𝐈𝐧𝐬𝐭𝐚𝐠𝐫𝐚𝐦 (for personal, raw and real side of my life) - keerti.purs...
𝐓𝐰𝐢𝐭𝐭𝐞𝐫 - KeertiPurswani?s=09
𝐋𝐢𝐧𝐤𝐞𝐝𝐈𝐧 - / keertipurswani
The video has following parts-
0:00-0:19 - Introduction
0:19-2:50 - Imp steps for trip creation
2:50-7:35 - Managing Riders & Drivers
7:35-9:08 - Trip meaning
9:08-16:55 - DriverMatching & Pricing Strategy
16:55-19:45 - Trip Meta Data
19:45-20:55 - Strategy is per trip
20:55-24:50 - Trip Manager
24:50-26:00 - Cab Creation
26:00-30:47 - UML class diagram in detail
30:47-48:03 - Code Walkthrough with output
#systemdesign #lowleveldesign #software-engineer

Пікірлер: 127

  • @sahenamaharjan6167
    @sahenamaharjan6167Ай бұрын

    One of the best LLD videos I have watched so far! Thank you.

  • @gxo-mt5vo
    @gxo-mt5vo10 ай бұрын

    I love your attitude. Thanks for the video!

  • @shubhamgoyal9556
    @shubhamgoyal9556 Жыл бұрын

    Amazing content, Keerti. So helpful.

  • @hottroddinn
    @hottroddinn5 ай бұрын

    This is excellent! Thank you for creating this video.

  • @shrutimath3330
    @shrutimath33306 ай бұрын

    Thankyou for such amazing explanation .Apreaciate the hardwork you have put

  • @sagarsondur
    @sagarsondur Жыл бұрын

    Amazing Explannation loved this

  • @rajarayavarapu2167
    @rajarayavarapu2167 Жыл бұрын

    Greatttttt please dont stop this series

  • @rajenderprasad1193
    @rajenderprasad11939 ай бұрын

    This is really amazing.. thank you Keerthi..

  • @heertheesh
    @heertheesh4 ай бұрын

    This is so helpful. Thanks for the video Keerti

  • @people_07
    @people_0711 ай бұрын

    thank for creating these excellent LLD,with such effort

  • @gvsai543
    @gvsai5437 ай бұрын

    Thank you so much keerthi. I had several doubts in lld, this video cleared almost all of them.

  • @mimansasinha2512
    @mimansasinha25126 күн бұрын

    Such an informative video, Thanks Keerti !!

  • @cricketguru7596
    @cricketguru7596 Жыл бұрын

    It's gives me atmost satisfaction as I understood this video very well❤❤❤

  • @khushbooverma
    @khushbooverma Жыл бұрын

    Loved the content and the way you explained. Please continue creating more such content. ❤

  • @renuroy4826
    @renuroy4826 Жыл бұрын

    Thank you so much Keerti for putting so so much efforts in the videos. ❤. Keep growing and Glowing !

  • @DSAShyam
    @DSAShyam Жыл бұрын

    Excellent video Keerti..

  • @biswajyoti.
    @biswajyoti. Жыл бұрын

    dedication what it is!! Hats off to u di

  • @amitgupta-or5nm
    @amitgupta-or5nm11 ай бұрын

    Hi Kreeti great work , I have watched all LLD videos they are very well explained , I really appreciate yr time and effort.

  • @shaikhanuman8012
    @shaikhanuman801222 күн бұрын

    Best Low Level Design Tutorial Thanks for clear-cut explanation.

  • @shaziakaleem1895
    @shaziakaleem1895Ай бұрын

    Super helpful. Thank you for putting in all the effort to create this.

  • @kudaykumar1261
    @kudaykumar1261 Жыл бұрын

    Thank you so much Keerthi It's a really nice explanation.

  • @aritrasadhukhan5674
    @aritrasadhukhan5674 Жыл бұрын

    Great work!!

  • @shivankchopra8552
    @shivankchopra8552 Жыл бұрын

    Thankyou for the effort! 🙏🏼😀

  • @jayandrapatil
    @jayandrapatil7 ай бұрын

    Super highly appreciated the efforts.

  • @GulshanKumar-jg8xs
    @GulshanKumar-jg8xsАй бұрын

    Amazing video. Described very well.

  • @shankarBinnar-xl8en
    @shankarBinnar-xl8en Жыл бұрын

    thanks keerti !! this very interesting and important topic . really help to understand the concept and LLD design flow...🤩

  • @himanshutanwani_
    @himanshutanwani_ Жыл бұрын

    Finally, was waiting for this!

  • @KeertiPurswani

    @KeertiPurswani

    Жыл бұрын

    Hope you like it! ❤️😇

  • @basavarajsonnad5775
    @basavarajsonnad5775 Жыл бұрын

    Great content. Very helpful.

  • @asmitamishra4965
    @asmitamishra4965 Жыл бұрын

    What a nice explanation.

  • @Alagu1210
    @Alagu1210 Жыл бұрын

    Thanks for the detailed explanation

  • @mohammedmoosamr4052
    @mohammedmoosamr405210 ай бұрын

    Thank you dear for your efforts god bless you ❤❤

  • @abymathew575
    @abymathew575 Жыл бұрын

    Thanks, Keerti for creating this excellent video with the entire thinking flow with a coding sample. Really appreciate your time and effort behind such a great video. Expecting more from your channel.

  • @ravinapit2817
    @ravinapit2817Ай бұрын

    Thanks, nice content❤

  • @akhilsharma1778
    @akhilsharma1778 Жыл бұрын

    Keerti Rocks

  • @RamBhakt__
    @RamBhakt__ Жыл бұрын

    Thank you so much for this video

  • @user-og9oo4ky4w
    @user-og9oo4ky4w4 ай бұрын

    This is so helpful mam, Thanks a lot for the efforts:)

  • @akasnani3464
    @akasnani3464 Жыл бұрын

    Nice explanation

  • @VIKASHKUMAR-mn6cs
    @VIKASHKUMAR-mn6cs10 ай бұрын

    Loved the video and the word Hotch Motch😊

  • @niwanshumaheshwari4534
    @niwanshumaheshwari4534 Жыл бұрын

    Thank you, no one explained LLD the way you did.

  • @MoniHazarika-oc7xs
    @MoniHazarika-oc7xs2 ай бұрын

    amazing video!

  • @mugeethl6036
    @mugeethl6036Ай бұрын

    Thanks for the wonderful explanation, please keep on posting more videos and playlist related to LLD , design patterns, HLD with proper roadmap from scratch to end in order.

  • @ujjwalshrivastava2437
    @ujjwalshrivastava243710 ай бұрын

    Flawless

  • @ashkumar8797
    @ashkumar87972 ай бұрын

    Thank you so much

  • @omidsaghatchian7502
    @omidsaghatchian75025 ай бұрын

    Thank you for the insightful video on design systems. I appreciate the clarity in your explanation. I'm curious about the "pricing calculation " process after selecting a driver. In the typical scenario, a rider selects the origin and destination first and then would like to see the corresponding fare before confirming the trip request. It seems intuitive to have the pricing information available at this stage, and then proceed to assign a driver once the rider confirms the trip. I understand this may involve simplification, but it seems crucial to treat pricing as an independent factor from the driver assignment. However, I acknowledge my perspective might be influenced by the absence of Uber in Iran, where the services we utilize may follow a different implementation approach. If my understanding is incorrect, I would appreciate any clarification on this matter. Thank you again for the informative content.

  • @lv3609
    @lv36092 ай бұрын

    Thanks!

  • @sandeepsack
    @sandeepsack Жыл бұрын

    Thanks for putting a lot of effort in making UML diagrams as well as clearly explaining thought process behind chosing class relationships & Also, for explaining how to make design scalable and extensible in case if we need to add different strategies for driver matching and price calculation. BTW, this is my first youtube comment ever. Thanks Again!!!!

  • @AdityaShenoy-fu3uw
    @AdityaShenoy-fu3uw3 ай бұрын

    My quest for the best LLD tutorial concludes here

  • @rahulrahul-cm4mn
    @rahulrahul-cm4mn Жыл бұрын

    Wow ! Keerti- great work

  • @er.vijayjoshi6624

    @er.vijayjoshi6624

    Жыл бұрын

    Excellent contribution. Please keep it up कभी महक की तरह हम गुलों से उड़ते हैं कभी धुएं की तरह पर्वतों से उड़ते हैं यह क्या उड़ने से ख़ाक रोकेंगे कि हम परों से नहीं हौसलों से उड़ते हैं

  • @tarunkumaracharya8047
    @tarunkumaracharya80479 ай бұрын

    What does the mtx:mutex represent in the above uml?

  • @utkarshranjan7903
    @utkarshranjan79038 ай бұрын

    Trip Manager should have a composition relationship with RiderManager, but an aggregation with Driver Manager, because a trip is created only if a rider is there. It's like a body can be there only if eye is there. Rider is totally a part of the trip, particularly when rider is creating trip. Although I think this should be true for the limited functionality that we discussed right now. Maybe for more expansion its better to have an aggregation relationship with rider manager as well

  • @aditijain2524
    @aditijain2524 Жыл бұрын

    Very nice content created. Kindly prepare videos like this in detail since I had seen your mock interview videos earlier they were not much in depth and in real interviews , interviewers ask in detail

  • @nishantdehariya5769
    @nishantdehariya57695 ай бұрын

    are the maps inside all the above singleton classes thread safe? if not, we might have to have mutex lock before setting the value inside map& then unlock right ?

  • @utkarshranjan7903
    @utkarshranjan79038 ай бұрын

    very good content

  • @divyareddy7622
    @divyareddy7622 Жыл бұрын

    thank youuuu❤❤

  • @KeertiPurswani

    @KeertiPurswani

    Жыл бұрын

    ❤️❤️😇😇

  • @BhavikaRajani
    @BhavikaRajani Жыл бұрын

    Keep up the good work

  • @KeertiPurswani

    @KeertiPurswani

    Жыл бұрын

    Thank you! ❤️

  • @shrishtigupta6902
    @shrishtigupta690210 ай бұрын

    Hi Keerti, Thanks for the video. It was super clear. I just had one doubt. Why do we need an instance of riderManager and driverManager in TripManager. I see those instances are not being used anywhere in the TripManager class.

  • @kapilchoudhary2922
    @kapilchoudhary2922 Жыл бұрын

    Mind blowing explanation, best content ever found on LLD so far, really liked the flow of your explanation....overview, UML class diagram and then code. Thanks Keerti!! ✨

  • @Manishkumar-el1vz
    @Manishkumar-el1vz11 ай бұрын

    An excellent LLD video; I appreciate the work Small Doubt: why are we passing pricingStartegy and driverMatchingStartergy pointers to the Trip class? In what scenarios these instances of strategies are needed in Trip class.

  • @JinilSasidharan
    @JinilSasidharan2 ай бұрын

    @KeertiPurswani Thanks so much♥ Is the manager class same as service class we use in Spring Boot?

  • @swatiacharya9073
    @swatiacharya907311 ай бұрын

    Amazing keerti... understood the lld first time... but a request... explain it slowly...its very fast

  • @user-pq2ri1xj2l
    @user-pq2ri1xj2l6 ай бұрын

    There are many LLD questions on the basic features of large systems like WhatsApp(How to manage users, send messages, receive messages, and manage groups), Facebook, and Twitter. Please help us by making videos on that too by covering the basics of those. It will be really beneficial for us.

  • @swatikhilrani8280
    @swatikhilrani8280 Жыл бұрын

    Keep it up beta 👍👍

  • @chandanapriyak2172
    @chandanapriyak2172 Жыл бұрын

    please also show us on how you are building the code in the end. That would be helpful

  • @thimothipalipaka852
    @thimothipalipaka852 Жыл бұрын

    i am very confused choosing abstract class and interface for achieving abstarction By choosing anyone implement in Uber/Ola Low Level System Design it does not effect any thing and we make the code loose coupling with one to other . In my case i choosing according to derived class 1.if derived class extends only multiple classes then i choose interface because java does not support multiple inheritence. can anyone tell me which one should i select and in which case?

  • @sureshpoosarla9877
    @sureshpoosarla9877 Жыл бұрын

    Thanks keerthi for an excellent video. It was very helpful as we used to see many video with explanations but not this much detailed explanation with code and UML. Please add more designs like this with code and UML. Hats off to you for your contribution

  • @snowy_56524
    @snowy_5652411 ай бұрын

    I love the intelligent lady ❤

  • @alokkamat9150
    @alokkamat9150 Жыл бұрын

    This is so so helpful. Thanks Keerti for making this kind of video. Now you have responsibilty of making such more videos.

  • @AshwiniYeokar
    @AshwiniYeokarАй бұрын

    We have different cars,auto avaible over uber and ola both, that we need to mention in this , right ?

  • @rakeshkumarsm9900
    @rakeshkumarsm9900 Жыл бұрын

    Great Work please make a video on low level design of CRED app

  • @vinodpaluvuri54
    @vinodpaluvuri54 Жыл бұрын

    Hi Keerti, when it is a coding problem, I will try to find solution to it whereas for system design i dont know what i am doing and also, it's not right if I just do as you do by mugging up.. Please help in understanding how can I gain confidence in system design things

  • @luxauto7065
    @luxauto70654 ай бұрын

    Thanks for taking the time and doing this video. It is very interesting and informative. But can you please slow down a little bit when you are talking. Thanks

  • @vm1662
    @vm16626 ай бұрын

    Thanks Keerti for yet another amazing video. I have a noob question: The RiderManager was created with a single instance. I suppose that is a single instance for each host (assuming we will have the code deployed in multiple hosts). How do we manage those multiple single instances from each host working on a single or multiple DB? Thanks in advance.

  • @krishnamurthymadaraboina1556
    @krishnamurthymadaraboina15564 ай бұрын

    this video is very good, lot of videos only describe but will not show in coding.

  • @aditya-9727
    @aditya-972714 күн бұрын

    @23:30 Hey Keerti, There is relationship between TripManager to StrategyManager so don;t u think the relationship between StrategyManager and TripMetadata is redundant?

  • @JohnSnow-gi7iv
    @JohnSnow-gi7iv7 ай бұрын

    where do we use these classes and create this structure while building the product? FE? BE? or this is just some theory stuff that is never used in actual implementation?

  • @srikarreddypochana6513
    @srikarreddypochana65133 ай бұрын

    Improv: Builder patterns can used for the Metadata or other Objects instead of Constructor parameters.

  • @adithyakramesh6132
    @adithyakramesh61326 ай бұрын

    Nice video. Would it be possible to have the code for the same in Java?

  • @yashendratiwari9372
    @yashendratiwari9372Ай бұрын

    Do you think somebody can come up with this solution and then code it in a hour or hour and a half long interview?

  • @PushpSoodSde
    @PushpSoodSde7 ай бұрын

    I don't think Strategy Manager has to be singleton! But overall great explanation :)

  • @DeepakLalchandaniProfile
    @DeepakLalchandaniProfile Жыл бұрын

    What is hpp ? Do you have solution in Java

  • @user-lk7vu2dw8s
    @user-lk7vu2dw8s10 ай бұрын

    Thank you so much, Keerti. What an amazing video. Your thoughts and efforts are absolutely visible. It cleared so many of my concepts and doubts, at the same time, helped me a lot with my confidence for the interviews and LLD rounds. Subscribed and definitely gonna share this video and your content with others. Big thumbs up.

  • @nishaaggarwal7876
    @nishaaggarwal7876 Жыл бұрын

    I am not able to understand : Why you have created riderMgr and driverMgr in TripMgr? They are never initialized or used!

  • @beginnerspoint1612
    @beginnerspoint161210 ай бұрын

    Please make some more on lld 😊

  • @therealg4197
    @therealg4197 Жыл бұрын

    Why not use unique_lock?

  • @kritirohilla021
    @kritirohilla02110 ай бұрын

    Thank you for this amazing video. Which IDE are you using for building and running this project ?

  • @parulgarg1145

    @parulgarg1145

    9 ай бұрын

    Visual Studio

  • @av21015
    @av21015 Жыл бұрын

    Great explanation, I just assumed that we send requests to nearest drivers and pricing is all based on km travelled. so I didn't get into this pricing strategy and driver strategy, but its a good thing to demonstrate in an interview.

  • @Md_sadiq_Md
    @Md_sadiq_Md Жыл бұрын

    I really appreciate the amount of work you have put into it so I shared in my group Hey could you please provide the code in java Please 🥺

  • @DeepakLalchandaniProfile

    @DeepakLalchandaniProfile

    Жыл бұрын

    What a coincidence .... i need in java too😢

  • @shubamgoswami
    @shubamgoswami Жыл бұрын

    Attendance marked . This content is better than paid courses that white board is worth ❤️. Going replay to the same comment when i complete the whole video ❤️

  • @rohit_kapdi
    @rohit_kapdi Жыл бұрын

    Nicely done. Thanks. Very much informative and brainstorming. We can decide to do Strategy run time, may be based on timing or location. That would be nice.

  • @user-kv5cr7th4b
    @user-kv5cr7th4b10 ай бұрын

    Very nicely explained and implemented Keerti! Thanks for sharing!

  • @sayondeep6729
    @sayondeep6729 Жыл бұрын

    A small doubt maam, I have often seen lld videos in java.. Is java more preferred in interview rounds by interviewers or it doesnt matter as far as we are able come up with solution?

  • @kumarsourav8851

    @kumarsourav8851

    Жыл бұрын

    doesn't matter unless job posting or recruiter specifically mentions that opening is only for a specific programming language

  • @anuragkumar2735
    @anuragkumar273516 күн бұрын

    @keerti You mentioned all the managers should be singleton across all trips, I believe all the manager should be singleton for a particular trip instead of all trips. please correct me if I am missing something here.

  • @aman2497
    @aman2497 Жыл бұрын

    Superb video, can see the work gone behind it. One tweak could be having a TripRequest class that has status: {pending, accepted, in progress, completed, cancelled} etc and when the driver accepts, it creates a Trip object and returns it.

  • @soumik76
    @soumik765 ай бұрын

    If trips cannot exist without TripManager and you are making that a composition, then why can't we say the same thing about RiderManager? Riders cannot exist without RiderManager as well. I am unable to clearly understand what's the difference between the relationships of Trip-TripManager versus Rider-RiderManager.

  • @pratyushprateek2503
    @pratyushprateek2503 Жыл бұрын

    Nice explanation and use of those design patterns ! One question, why do we have a strategy for matching of drivers to riders? In actual scenario, it is upto the drivers in that region to accept the user's trip or not right? The ride request of the user is sent to all the drivers in that bounded region where the user has to start the trip I believe. To emulate in this LLD, we can maybe use a mediator for communication of a ride request to all drivers nearby, and whichever driver accepts the trip request, we again use the mediator to inform the owner of the ride request, i.e, the rider. How does that seem? Waiting for your feedback !

  • @chandnibhatia1211
    @chandnibhatia1211 Жыл бұрын

    Thanks for the session, its amazing !But quad ka explanation kidhar h ...

  • @KeertiPurswani

    @KeertiPurswani

    Жыл бұрын

    Channel kholke dekha toh karo 🫢 Here’s the link. Hope you like it ❤️ kzread.info/dash/bejne/nXegsqSHnbeplpM.html

  • @SeemaKumari-xv6dc
    @SeemaKumari-xv6dc Жыл бұрын

    Thanks for the video. It's very informative and good. One request though. Can you please create a playlist for all the design patterns?

  • @utkarshsharma5202
    @utkarshsharma5202 Жыл бұрын

    Most of the videos and courses out there have code in java, can you please provide java code also?

  • @pammybcc
    @pammybcc Жыл бұрын

    There's issue in Audio Quality :)

  • @nishaaggarwal7876
    @nishaaggarwal7876 Жыл бұрын

    Thanks Keerti for such a nice explanation. I want to know what is the relationship between TripMgr and StrategyMgr? I can see it's neither aggregation nor composition. What can it be called?

  • @anushkakaushik6776

    @anushkakaushik6776

    11 ай бұрын

    Unidirectional association

Келесі