1. How to decide that user ID/lat/long is 8 bytes each? 38:29. user ID should be UUID which is 16 bytes. 2. Trips Service sends trip data to Payments Service. According to 1:02:07, seems you have it as normal request. Why not use Kafka, as payment doesn't need to be immediate, and allow Payments Service to process at its own pace? 3. You mentioned latest location should be stored in Redis and history in Cassandra at 40:19. Which datastore is used for the other data and why?
Here’s a praise for Anshul from Scalar: Hey Aanshul, this video on Uber’s system design is simply outstanding! You managed to explain so many complex concepts clearly and concisely, all in just 1 hour-every single minute packed with valuable information. It's incredible to have such high-quality content available for free. Your no-fluff, straight-to-the-point approach kept me engaged throughout. Truly a masterpiece-thank you for creating such amazing content!. Thank you Scalar for bringing such amazing content for us.
How is trip entity created? The API listed in trip service does not show the creation of trip, and all api depends on trip id. Also, how to handle the concurrency issue, where user request a car, and matched driver accept the pair, but user canceled the trip at the same time. How does the map is rendered? Uber uses H3 geo-encoding, what's the pros and cons among geohash, s2 and h3? What's the benefit of adopting consistent hashing in the location service, compared to a static sharding maintenance via a coordination service?
- Regarding trip entity creation, I think when the driver accepts a booking notification from cab finder service , a trip entity is created with status == CREATED. The status then changes to: STARTED upon driver receiving otp from rider, CANCELLED when rider cancels the CREATED trip, COMPLETED when destination reached. - The concurrency issue (race condition) is a good technical problem to be solved. Not just when a rider cancels the cab finder request and driver accepts at the same time, but also when multiple drivers accept the booking notification from cab finder service together the issue could happen. A distributed lock (using Zookeeper) on cabFindRequestId or riderId (since a rider can only book a single cab) should be good.
Take the Hunger test today: bit.ly/3qp7jaG
1. How to decide that user ID/lat/long is 8 bytes each? 38:29. user ID should be UUID which is 16 bytes.
2. Trips Service sends trip data to Payments Service. According to 1:02:07, seems you have it as normal request. Why not use Kafka, as payment doesn't need to be immediate, and allow Payments Service to process at its own pace?
3. You mentioned latest location should be stored in Redis and history in Cassandra at 40:19. Which datastore is used for the other data and why?
Here’s a praise for Anshul from Scalar:
Hey Aanshul, this video on Uber’s system design is simply outstanding! You managed to explain so many complex concepts clearly and concisely, all in just 1 hour-every single minute packed with valuable information. It's incredible to have such high-quality content available for free. Your no-fluff, straight-to-the-point approach kept me engaged throughout. Truly a masterpiece-thank you for creating such amazing content!.
Thank you Scalar for bringing such amazing content for us.
Thanks! Keep an eye out for more such videos! 😃
Thank you for the first class content that is too for free. God Bless the tutors and the Scaler Academy😊
Thanks! Keep an eye out for more such videos! 😃
How is trip entity created? The API listed in trip service does not show the creation of trip, and all api depends on trip id.
Also, how to handle the concurrency issue, where user request a car, and matched driver accept the pair, but user canceled the trip at the same time. How does the map is rendered?
Uber uses H3 geo-encoding, what's the pros and cons among geohash, s2 and h3?
What's the benefit of adopting consistent hashing in the location service, compared to a static sharding maintenance via a coordination service?
- Regarding trip entity creation, I think when the driver accepts a booking notification from cab finder service , a trip entity is created with status == CREATED. The status then changes to: STARTED upon driver receiving otp from rider, CANCELLED when rider cancels the CREATED trip, COMPLETED when destination reached.
- The concurrency issue (race condition) is a good technical problem to be solved. Not just when a rider cancels the cab finder request and driver accepts at the same time, but also when multiple drivers accept the booking notification from cab finder service together the issue could happen. A distributed lock (using Zookeeper) on cabFindRequestId or riderId (since a rider can only book a single cab) should be good.
too good, easy explaination with no jargon
great stuff but 11:30 the payment service being eventually consistent example was really bad. it should be the opposite of what you said.
what tech stack should we use ?
Could you please list it here so other students can also get...
Excellent Tutorial. Great job by Aanshul
which tool do you use to draw diagrams and write notes during the video recording
Excellent
Excellent!
Happy to hear that! 🙌🏼
Amazing ❤❤ it's really helpful 😊😊
Thanks! Glad this was helpful! 😃
Make Google Map System Design explaination video 😊
Hi Vikki, we have duly made a note of your suggestion and it will be passed on to our relevant teams. Thank you! 😊
If possible please create SD video for google maps
Hi Tanishq, we have duly made a note of your suggestion and it will be passed on to our relevant teams. Thank you! 😊
Thank you
Please make a system design for Google maps❤
Hi, we have duly made a note of your suggestion and it will be passed on to our relevant teams. Thank you! 😊
Hare Krishna Hare Krishna Krishna Krishna Hare Hare
Hare Rama Hare Rama Rama Rama Hare Hare ❤❤
Raadhe Raadhe ❤❤
what is the meaning of system engineer 3
MAKE GOOGLE MAP SYSTEM DESIGN
very detailed explaination...thanks for this
Happy to hear that! 🙌🏼
Make video on Google map design
Loved it
❤❤❤❤
Excellent Tutorial. Great job by Aanshul