Design Proximity Services Like Yelp & Google Maps | System Design

Поделиться
HTML-код
  • Опубликовано: 18 ноя 2024

Комментарии • 66

  • @arpit35007
    @arpit35007 Год назад +10

    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 6 месяцев назад

      @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 ?

    • @oluwie
      @oluwie 3 месяца назад +1

      @@tanaygupta632 you'd want to calculate neighbors for the bounding problem. imagine a location is at the edge of a quadrant. you'd want locations at the next quadrant as well since those locations could be closer to the user than any other locations in the same quadrant, so you'd want to get all locations in adjacent quadrants and then sort on distance to the query. there are libraries you can use to get neighboring hashes for any given hash

  • @chasing_the_horizon
    @chasing_the_horizon 2 года назад +7

    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  2 года назад +2

      Haha! You clearly got your priorities sorted out. Glad they are helpful to you.

  • @B-Billy
    @B-Billy 26 дней назад

    Woow, you have even shared your noted!! That's perfectly perfect!

  • @VaibhavKarbhajan
    @VaibhavKarbhajan 9 месяцев назад

    Very informative and explained practical usage of handling maps via geohash. Thank you for this video.

  • @fierce2321
    @fierce2321 2 года назад

    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

  • @imiebaka
    @imiebaka 2 года назад

    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.

  • @Ganeshkanagavel
    @Ganeshkanagavel Год назад

    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

  • @6365bharath
    @6365bharath 2 года назад

    Loved it. Such an underrated channel.

  • @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.

  • @shis10
    @shis10 5 месяцев назад

    Amazingly explained

  • @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  Год назад

      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.

  • @abhirupacharya010
    @abhirupacharya010 Год назад

    Amazing explanation!!
    Please keep up the sensational job

  • @neurocat6453
    @neurocat6453 Год назад

    I usually watch your videos on 1.5 speed and background music sounds like some crazy mobile space arcade :D

    • @irtizahafiz
      @irtizahafiz  Год назад

      LOL yeah I think I stopped adding music after getting multiple feedback.

  • @석상주
    @석상주 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.

  • @schan263
    @schan263 10 месяцев назад

    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  8 месяцев назад

      Huh, I thought I mentioned that. Maybe not then. Thank you for pointing it out.

  • @sergiim5601
    @sergiim5601 2 года назад

    Amazing content, very clearly explained all nuances and approaches !

  • @pratiksingh9953
    @pratiksingh9953 2 года назад

    thanks, very informative.. keep up the good work 👍

  • @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  Год назад

      Thank you for the kind words. Hope you enjoy the upcoming videos as well.

  • @mahanteshambali
    @mahanteshambali Год назад

    Great stuff. Thank you for putting your efforts on this topic.

  • @JemilOyebisiDeveloper
    @JemilOyebisiDeveloper 2 года назад

    Great content and well articulated, keep the great job going man!

    • @irtizahafiz
      @irtizahafiz  2 года назад +1

      Much appreciated! Let me know what else you are interested in.

  • @poonam-kamboj
    @poonam-kamboj Год назад

    nicely explained. thanks!!

    • @irtizahafiz
      @irtizahafiz  Год назад

      Thank you! I will start posting again soon, so please let me know what type of content interests you the most.

  • @조바이든-r6r
    @조바이든-r6r 2 года назад

    ive been waITING FOR YOU!

  • @chrishabgood8900
    @chrishabgood8900 4 месяца назад

    Around 22 or so I would name columns like geohash_1, _5, _10, so you could dynamically interpolate when the query comes in.

  • @andr101
    @andr101 5 месяцев назад

    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?

    • @irtizahafiz
      @irtizahafiz  16 дней назад +1

      IIRC one solution is to fetch data from N neighboring cells instead of the chosen cell only.

  • @Sdirimohamedsalah
    @Sdirimohamedsalah Год назад

    Any idea to locate a business in movement like taxi or distributors .. ?

  • @digitalmastery3736
    @digitalmastery3736 2 года назад

    amazing , kudos to you

  • @Sdirimohamedsalah
    @Sdirimohamedsalah Год назад

    Special thanks !

  • @harshitchauhan7363
    @harshitchauhan7363 Год назад

    Awesome!!

  • @ihsannuruliman4005
    @ihsannuruliman4005 10 месяцев назад

    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  10 месяцев назад

      I am not really familiar with trie-based geohashing DBs either.

  • @arunsatyarth9097
    @arunsatyarth9097 2 года назад +1

    I think you should have discussed the edge cases of using geohash

    • @irtizahafiz
      @irtizahafiz  2 года назад

      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 :(

  • @philtoa334
    @philtoa334 2 года назад

    Very good.

  • @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 : )

  • @silapukanan952
    @silapukanan952 2 года назад

    Does MySQL come with CDC feature automatically? If not, how is CDC implemented between mySQL and kafka?

    • @mohsanabbas6835
      @mohsanabbas6835 2 года назад

      I think there is connector for that Debezium

    • @irtizahafiz
      @irtizahafiz  2 года назад

      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.

  • @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  Год назад +2

      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.

  • @flashliqu
    @flashliqu 2 года назад

    Raise hand, what is the difference between Geohash and Quadtree, could you record a video to tutor?

    • @irtizahafiz
      @irtizahafiz  2 года назад +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 : )

  • @calgjg
    @calgjg 7 месяцев назад

    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  7 месяцев назад

      You can cache results sliced by business category, though you will be using up more space.

  • @TheZhengdu
    @TheZhengdu 2 года назад

    The note shared seems to editable by anyone, it may get lost if someone click the wrong button.

  • @abhishektayal8313
    @abhishektayal8313 2 года назад

    👍👍