System Design Zomato | System Design Swiggy | Interview Experience | FAANG | System Design Interview

Share
Embed
  • Published on Apr 9, 2021
  • System design interview preparation:
    In this video I have covered an interview experience I had with one of the FAANG(facebook, amazon, apple, netflix, google) company.
    I will be discussing about the System design round that I had on designing a food delivery app like Swiggy, zomato, uber eats, food panda etc.
    Whole video is about the conversation between me and the interviewer and the things that i was asked while designing the application.
    You can buy us a coffee at : www.buymeacoffee.com/thetechg...
    system design(HLD & LLD): thexvid.com/video/jzPSuBiidF4/video.html
    DS for beginners: thexvid.com/video/cxjWjBPPbzI/video.html
    leetcode solutions: thexvid.com/video/jVN6Mq0mXJo/video.html
    github: github.com/TheTechGranth/theg...
    facebook group : groups/74131...
    twitter: GranthTech
  • Science & TechnologyScience & Technology

Comments • 50

  • shashi shekhar tiwari
    shashi shekhar tiwari Year ago +11

    Your all videos are from natural way of thinking ..no adulteration and influence from other video.
    Salute to your work

    • The Tech Granth
      The Tech Granth  Year ago

      @Mayur SSoni Thanks, glad you liked it. Do like and subscribe and share with your friends :)

    • Mayur SSoni
      Mayur SSoni Year ago +1

      absolutely right..

    • The Tech Granth
      The Tech Granth  Year ago +1

      Thank you very much!!! :)

  • Shabarinath Chandrashekhar

    Very nice Explanation. A few nice to have refinements as below:
    1. For OrderManagement
    GetOrders(customer id) Get the previous orders placed to reorder
    Reorder() calls placeorder again with same order pojo
    Cancel Order (order Id) Cancels the order
    Feedback (Order ID) (Post feedback on an order)
    2. Delivery Management (Internal endpoints)
    RetriveRestaurantsClosest(Location userlocation)
    MapValet(Order id, Valetlocation)
    CalculateETA(valet id, Order order)

    • The Tech Granth
      The Tech Granth  Year ago +1

      Thanks for the feedback, really appreciate it :) Do like and subscribe and share with your friends. Would be nice if you speak your mind on other system design videos as well :)

  • Amit Shah
    Amit Shah Year ago +2

    Good topic for discussion. A few points to mention
    1. Is it a general practice to use a message bus when multiple services want to interact with each other instead of REST api's? Are there any better ways instead since event bus also adds complexity and eventual consistency as the trade offs.
    2. Often application decomposition into microservices is the most challenging task in the system design. Hence there are multiple ways of doing this - have you explored volatility based decomposition or dataflow driven decomposition? If not it would be worth taking up the challenge :)
    Thanks!

    • The Tech Granth
      The Tech Granth  Year ago

      I agree with your 2nd point for 1st point i think internals like order management lifecycle, delivery lifecycle etc. can be managed using messaging and that is what i suggested as well using the distributed queue but for the clients we should have APIs and getting the price of an order, kind of thing will be exposed to client
      But again system design rounds are really subjective.
      Do check out the other videos on the channel, like and share with your friends as well :)

  • imran2utube
    imran2utube 3 months ago +1

    Interesting approach. For me the most intuitive approach would be to use a cart based system.

  • m r
    m r Year ago +4

    Nice content. I came up with following services with your help -
    1. Location service - Update/Insert user and delivery boy location into db.
    2. Auth service - User authentication
    3. Payent service - to make a payment through different modes like razor pay, upi etc.
    4. Order service - Create/update/cancel order. Update order status.
    5. Notification service - to send notification to user
    6. Delivery service - to estimate delivery time, calculate distance from a coordinate.
    7. Search service - search food/restaurant
    8. Catalog service - api for restaurant and menu listing.

    • The Tech Granth
      The Tech Granth  Year ago

      Glad it helped :) Do like and subscribe and share with your friends!!!

  • Surinder
    Surinder 8 months ago +1

    This is a great video. One Suggestion, you mentioned you were ready to incorporate database design too however was asked to ignore. Do you think you can make another video adding that point too?

    • The Tech Granth
      The Tech Granth  8 months ago

      Glad it was helpful to you. Yes will try to come up with it.
      Currently little occupied with my work hence unable to upload new videos.
      Do like and subscribe and share with others 🙂

  • K V V
    K V V 4 months ago +1

    Hi Tech granth,
    Can you make a detailed video on delivery management. The flow after placing order till delivery. State machine or the data flow.
    Also are there plans to make video on airbnb or booking. Particularly interested on data model of showing the availability of room on particular day.

    • The Tech Granth
      The Tech Granth  4 months ago

      Yes I have plans for Airbnb, will come up with it soon. For the 1st part, may be I will think about a order management service which can be common for food or any delivery

  • Abhinav Gupta
    Abhinav Gupta Year ago +1

    I think you missed a critical component here which is catalog/listings service (shows restaurant/dishes based on zipcode or personalization based on previous orders)

    • The Tech Granth
      The Tech Granth  Year ago

      While discussing the requirements, I told them as that will be the starting point when you open the app,but they were not interested in that. I missed that in the video. Thanks for pointing :)

  • Prashant lodhi
    Prashant lodhi 8 months ago +1

    Hi , as you have designed a Complete data flow for other designs you have not done for this please share a video listing all the components required to design a complete application.

    • The Tech Granth
      The Tech Granth  7 months ago +1

      @Prashant lodhi Point noted, going forward will upload the complete architecture diagram on git. Thanks for suggestion 🙂 Do like and subscribe and share with others 😀

    • Prashant lodhi
      Prashant lodhi 7 months ago +1

      @The Tech Granth : your videos are very good , but i just have one suggestion after completing the video please share a complete design as single image or document with components used as reference for further use.

    • The Tech Granth
      The Tech Granth  8 months ago +1

      Yes you are right, this was supposed to be more of raw interview experience. I will try to implement your suggestion soon 🙂 Do like and subscribe and share with others 🙂

  • mohit gupta
    mohit gupta 7 months ago +1

    Can you please make a fresh video on actual system design food Delivery System with all required components.

    • The Tech Granth
      The Tech Granth  7 months ago

      Yes will come up with that soon, anyway I have to cover database design as per request from many 🙂

  • Xiaoqi -Sandy Zhou
    Xiaoqi -Sandy Zhou 20 days ago

    Great video . I am new to system design , not sure if able to get a mock up interview with you

  • Souvanik Saha
    Souvanik Saha 9 months ago +2

    If we use only order id to get the price of all order item. We can easily do that. But what is the need of user ID. Because each order ID is unique and from order ID we can easily get the user information. So is it really necessary to pass user ID to get the price?I m just asking because I was working on something like this. So it is better to have different opinions.
    Thanks

    • Souvanik Saha
      Souvanik Saha 9 months ago

      @The Tech Granth Yes. Got it .

    • The Tech Granth
      The Tech Granth  9 months ago +1

      Yes that makes sense, my thought process was in case we have some range based partitioning on user id. So for better query performance we may need to pass on the userid as well.

  • rohit tiwari
    rohit tiwari 11 months ago +1

    Great video for starters

  • sorabh jain
    sorabh jain 9 months ago +1

    keep up your good work. Great video.

    • The Tech Granth
      The Tech Granth  9 months ago

      Gald it was helpful. Do like and subscribe and share with your friends 🙂

  • divya prabha
    divya prabha Year ago +1

    Thanks for sharing. Can you please share LLD for elevator.

    • The Tech Granth
      The Tech Granth  Year ago

      here you go, hope justice was done : thexvid.com/video/14Cc8IDWtFM/video.html

    • The Tech Granth
      The Tech Granth  Year ago

      Sure, Do like share and subscribe!!!

  • Anil chaudhry
    Anil chaudhry 18 days ago

    which company was this for? Did you clear the interview?

  • neeraj gupta
    neeraj gupta Year ago +1

    14:00 why should you take order_id in the POST request of order. actually its order service job to generate one.

    • The Tech Granth
      The Tech Granth  Year ago

      When you place order you pass on the Order object and order service will update it with actual order I'd, which needs to be persisted

  • Praveen Belkar
    Praveen Belkar Year ago +1

    What was the outcome ?

    • Praveen Belkar
      Praveen Belkar Year ago +2

      @The Tech Granth it all depends on interviewer. They reject candidates on flimsiest excuses. I think you did well.

    • The Tech Granth
      The Tech Granth  Year ago

      What do you think?

  • Sandhuya Sharma
    Sandhuya Sharma Year ago +1

    thank you :)

    • Sandhuya Sharma
      Sandhuya Sharma Year ago +1

      @The Tech Granth oh you remember that's good 👍🌞

    • The Tech Granth
      The Tech Granth  Year ago +1

      Hope it helped you. Do like and subscribe and share the video with others :) Apologize for the delay in your other request of truecaller. Will come up with that as soon as I can.

  • Rabindra Kumar
    Rabindra Kumar 4 months ago +1

    Too much abstract, this can be explained with proper design patterns and pojo along with blocks in 45 minutes.

  • Indrajit Das
    Indrajit Das 8 months ago

    Did the interviewer share any post interview feedback?

  • dheeraj rathi
    dheeraj rathi 16 days ago

    so you are working with JPMC?

  • Gaurav
    Gaurav Year ago +1

    What is your experience

    • The Tech Granth
      The Tech Granth  Year ago +1

      1) very friendly/helpful HR
      2) system design rounds are decent for SDE2/3
      3) competitive programming part is moderate to tough level

  • Rabindra Kumar
    Rabindra Kumar 4 months ago +1

    Pojo modelling not proper. Order must have userId.