System Design Zomato | System Design Swiggy | Interview Experience | FAANG | System Design Interview
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 & Technology
Your all videos are from natural way of thinking ..no adulteration and influence from other video.
Salute to your work
@Mayur SSoni Thanks, glad you liked it. Do like and subscribe and share with your friends :)
absolutely right..
Thank you very much!!! :)
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)
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 :)
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!
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 :)
Interesting approach. For me the most intuitive approach would be to use a cart based system.
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.
Glad it helped :) Do like and subscribe and share with your friends!!!
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?
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 🙂
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.
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
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)
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 :)
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.
@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 😀
@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.
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 🙂
Can you please make a fresh video on actual system design food Delivery System with all required components.
Yes will come up with that soon, anyway I have to cover database design as per request from many 🙂
Great video . I am new to system design , not sure if able to get a mock up interview with you
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
@The Tech Granth Yes. Got it .
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.
Great video for starters
keep up your good work. Great video.
Gald it was helpful. Do like and subscribe and share with your friends 🙂
Thanks for sharing. Can you please share LLD for elevator.
here you go, hope justice was done : thexvid.com/video/14Cc8IDWtFM/video.html
Sure, Do like share and subscribe!!!
which company was this for? Did you clear the interview?
14:00 why should you take order_id in the POST request of order. actually its order service job to generate one.
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
What was the outcome ?
@The Tech Granth it all depends on interviewer. They reject candidates on flimsiest excuses. I think you did well.
What do you think?
thank you :)
@The Tech Granth oh you remember that's good 👍🌞
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.
Too much abstract, this can be explained with proper design patterns and pojo along with blocks in 45 minutes.
Yes but this is a raw experience
Did the interviewer share any post interview feedback?
No, feedback is shared by HR
so you are working with JPMC?
What is your experience
1) very friendly/helpful HR
2) system design rounds are decent for SDE2/3
3) competitive programming part is moderate to tough level
Pojo modelling not proper. Order must have userId.