Тёмный

Design Proximity Services Like Yelp & Google Maps | System Design 

Code with Irtiza
Подписаться 12 тыс.
Просмотров 9 тыс.
50% 1

Let’s design an app similar to Yelp or Google Search! We start with a naive implementation and then gradually improve upon it while talking about the different tradeoffs.
System Design Playlist: • System Design Beginner...
00:00 Examples
00:33 High-Level Features
01:30 Naive Design
03:50 How Does it Work?
05:10 Problems with Approach 1
08:10 Improve using Geohashes
10:15 Improve Database Schema
13:11 How Does it Work Now?
15:50 Can we improve more?
16:35 Denormalize Geohashes
21:48 Optimize with Caches
24:15 Full READ Design with Cache
27:10 Adding a New Business
29:20 CDC, Message Queue + Stream Processing
32:55 Outro + Notes
Notes: [pdfhost.io/edit?doc=f7173ac1-...](pdfhost.io/edit?doc=f7173ac1-...)
#systemDesign #databaseDesign #database
Visit me at: irtizahafiz.com
Reach me at: irtizahafiz9@gmail.com

Опубликовано:

 

4 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 62   
@arpit35007
@arpit35007 Год назад
It's a great video man. One thing that should be added is, we just don't lookup for one geohash, we also calculate 8 neighbours and then do a lookup.
@tanaygupta632
@tanaygupta632 2 месяца назад
@arpit35007 what do you mean by that ? and how do we calculate 8 neighbours ? and what exactly are these neighbours ? are these 8 nearest quadrants which have multiple businesses in it ?
@chasing_the_horizon
@chasing_the_horizon Год назад
Bloody hell, the idea about geohash4, geohash5, geohash6 is so simple, but at the same time is so genius (by the time of writing the message I've already watched a few videos about geohashing and proximity servers). I had plans with my girlfriend to do some Netflix & Chill, but I guess I would rather continue watching your other videos on Systems Design. Superb stuff!
@irtizahafiz
@irtizahafiz Год назад
Haha! You clearly got your priorities sorted out. Glad they are helpful to you.
@shis10
@shis10 Месяц назад
Amazingly explained
@pspskat
@pspskat 2 года назад
Very clearly explained. The best system design video i have seen.
@irtizahafiz
@irtizahafiz 2 года назад
Really happy to hear that : ) Let me know if you have any feedback.
@imiebaka
@imiebaka Год назад
I like this. Sometimes it's good to always see how to optimize solution. I was jumping for joy that I could use the LIKE and boom, the multiple column nailed it.
@VaibhavKarbhajan
@VaibhavKarbhajan 5 месяцев назад
Very informative and explained practical usage of handling maps via geohash. Thank you for this video.
@user-eq4oy6bk5p
@user-eq4oy6bk5p 2 года назад
This is awesome. Best youtube channel regarding system design. Keep it up!
@irtizahafiz
@irtizahafiz 2 года назад
That means so much! Really appreciate it. Hope you continue getting value out of the content.
@sergiim5601
@sergiim5601 Год назад
Amazing content, very clearly explained all nuances and approaches !
@irtizahafiz
@irtizahafiz Год назад
Glad you think so!
@fierce2321
@fierce2321 Год назад
One of the best system design video I have ever seen, period. Let alone being best SD video on proximity service. Awesome explanation. Mind=blown
@irtizahafiz
@irtizahafiz Год назад
Glad you liked it!
@6365bharath
@6365bharath 2 года назад
Loved it. Such an underrated channel.
@irtizahafiz
@irtizahafiz 2 года назад
Much appreciated!
@JemilOyebisiDeveloper
@JemilOyebisiDeveloper 2 года назад
Great content and well articulated, keep the great job going man!
@irtizahafiz
@irtizahafiz 2 года назад
Much appreciated! Let me know what else you are interested in.
@mahanteshambali
@mahanteshambali Год назад
Great stuff. Thank you for putting your efforts on this topic.
@irtizahafiz
@irtizahafiz 8 месяцев назад
Glad you found it helpful!
@abhirupacharya010
@abhirupacharya010 11 месяцев назад
Amazing explanation!! Please keep up the sensational job
@irtizahafiz
@irtizahafiz 7 месяцев назад
Thank you for watching!
@poonam-kamboj
@poonam-kamboj 9 месяцев назад
nicely explained. thanks!!
@irtizahafiz
@irtizahafiz 8 месяцев назад
Thank you! I will start posting again soon, so please let me know what type of content interests you the most.
@Khushboo1811
@Khushboo1811 Год назад
Your content is amazing and so helpful.. Thanks for all the efforts that you have put it in , and making our lives easy :)
@irtizahafiz
@irtizahafiz 7 месяцев назад
Thank you for the kind words. Hope you enjoy the upcoming videos as well.
@pratiksingh9953
@pratiksingh9953 Год назад
thanks, very informative.. keep up the good work 👍
@irtizahafiz
@irtizahafiz Год назад
Thanks for watching!
@user-vm8yn4hb4w
@user-vm8yn4hb4w 2 года назад
ive been waITING FOR YOU!
@digitalmastery3736
@digitalmastery3736 Год назад
amazing , kudos to you
@irtizahafiz
@irtizahafiz Год назад
Thanks a lot!
@Sdirimohamedsalah
@Sdirimohamedsalah Год назад
Special thanks !
@harshitchauhan7363
@harshitchauhan7363 Год назад
Awesome!!
@philtoa334
@philtoa334 2 года назад
Very good.
@Ganeshkanagavel
@Ganeshkanagavel 8 месяцев назад
Very High Clarity in the thoughts and presentation, Would be very helpful if we extend for 5 more minutes covering the Quadtree or Google S2 based approach as well
@schan263
@schan263 5 месяцев назад
Thanks for the great video. I think it would be even better if the video mentioned the scenario where the user could be near the edge of the grid and should also return the neighbour grids. Or we should always return the neighbouring grids if it's too much work to figure out if the user is near the edge of the grid or not.
@irtizahafiz
@irtizahafiz 4 месяца назад
Huh, I thought I mentioned that. Maybe not then. Thank you for pointing it out.
@neurocat6453
@neurocat6453 Год назад
I usually watch your videos on 1.5 speed and background music sounds like some crazy mobile space arcade :D
@irtizahafiz
@irtizahafiz 8 месяцев назад
LOL yeah I think I stopped adding music after getting multiple feedback.
@andr101
@andr101 13 дней назад
If the user is located near the boundary of a big cell 9a, the method proposed in the video won't get all those locations which are in proximity of the user but belonging to an adjacent big cell (9b, for example). How would you work around this issue?
@Sdirimohamedsalah
@Sdirimohamedsalah Год назад
Any idea to locate a business in movement like taxi or distributors .. ?
@abhishektayal8313
@abhishektayal8313 2 года назад
👍👍
@ihsannuruliman4005
@ihsannuruliman4005 6 месяцев назад
Since these are stored as prefixes, can we use trie data structure here? If so, why don't we use it? We can use graph database and store every prefix as node, and the next prefix (the deeper levels) as children. But looking at it I don't see any trie-based geohashing implemented in DBMS, tho.
@irtizahafiz
@irtizahafiz 5 месяцев назад
I am not really familiar with trie-based geohashing DBs either.
@raveendrajonna4756
@raveendrajonna4756 2 года назад
What is the Tool/ IDE you are using , Its very nice, i also want to start using.
@irtizahafiz
@irtizahafiz 2 года назад
Hi! I am using Obsidian for the actual notes, and Miro for the diagrams. obsidian.md/ miro.com/ Both are free tools that you can use : )
@arunsatyarth9097
@arunsatyarth9097 Год назад
I think you should have discussed the edge cases of using geohash
@irtizahafiz
@irtizahafiz Год назад
I believe I have another video on Geohash. That's why didn't go into depth here.
@soumyajitganguly2593
@soumyajitganguly2593 Год назад
@@irtizahafiz you didnt discuss edge cases there either :(
@limitlesspotential3879
@limitlesspotential3879 Год назад
@irtizahafiz Thank you for such a crisp and clear video. It was very helpful. I have a question about how the data is being stored in cache. We are storing list of business ids. so when a new business gets added wont it be difficult to insert that new id into the existing list? Also you showed the post processor to add into the Cache. What if the processor dies after consuming the message? How do we avoid duplicates in the cache then? I would really appreciate if you can answer these questions
@irtizahafiz
@irtizahafiz 7 месяцев назад
1. Redis and some other caching mechanism gives you an easy way to append to a list. 2. You could use a set. For example, Redis gives you a set data structure to use in-memory.
@silapukanan952
@silapukanan952 Год назад
Does MySQL come with CDC feature automatically? If not, how is CDC implemented between mySQL and kafka?
@mohsanabbas6835
@mohsanabbas6835 Год назад
I think there is connector for that Debezium
@irtizahafiz
@irtizahafiz Год назад
You need a connector. MySQL will write about all the changes happening in a bin log I believe. You need a connector to read/format from this log file and then write formatted messages to Kafka.
@TheZhengdu
@TheZhengdu Год назад
The note shared seems to editable by anyone, it may get lost if someone click the wrong button.
@calgjg
@calgjg 2 месяца назад
This caching design assumes all business categories are homogenous. How might this support say searching for just coffee shops around a location instead of all businesses at location, that might include laundromat, etc.
@irtizahafiz
@irtizahafiz 2 месяца назад
You can cache results sliced by business category, though you will be using up more space.
@flashliqu
@flashliqu 2 года назад
Raise hand, what is the difference between Geohash and Quadtree, could you record a video to tutor?
@irtizahafiz
@irtizahafiz 2 года назад
Hi! That's a really good question. I did go down the rabbit hole of understanding how they differ from each other. I can make a video about it in the future : )
@ramgilaka6146
@ramgilaka6146 Год назад
This is Gold!... where you have been all these years mate!. If I make a app with this knowledge ..I might share the royalty as well... ... Thank you
@irtizahafiz
@irtizahafiz 7 месяцев назад
Haha! So glad to hear that. Let me know if you ever end up making an app. Would love to see how you apply these concepts.
Далее
Database Replication Explained
10:34
Просмотров 3,8 тыс.
Design YouTube | System Design
40:20
Просмотров 5 тыс.
FARUX RAIMOV AVJIGA CHIQDI - JAVOHIR🔥
01:01
Просмотров 975 тыс.
Как выходим с тройняшками 🙃
00:17
Introduction to Payment Systems | System Design
40:56
Design A Scalable Rate Limiter | System Design
24:32
Просмотров 10 тыс.
System Design: Why is Kafka fast?
5:02
Просмотров 1 млн
Design A Scalable Notification System | System Design
28:23
Find Nearby Friends | System Design
27:11
Просмотров 4,3 тыс.
Faster geospatial queries in MySQL
13:46
Просмотров 19 тыс.
FARUX RAIMOV AVJIGA CHIQDI - JAVOHIR🔥
01:01
Просмотров 975 тыс.