System Design of a Delivery System like Zomato with

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

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

  • @KeertiPurswani
    @KeertiPurswani 7 месяцев назад +30

    Absolutely love recording this series! The discussions are so raw and real, hope you all are also liking it!

  • @rishabhbafna36
    @rishabhbafna36 7 месяцев назад +10

    12:55 Here in the cache you can store the data in a priority queue like data structure in low level, where the nearest, best rated and fairest top riders let say 10 will get the notification of the order. And If non of them accepts for say 1 minute, than next 10 will be shown. This way we can limit the size of the cache and fetch the top required data from the central db in the memory.

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

    Congrats Guys, could get a lot of insight from this talk! Rock on! 😁

  • @sudosai
    @sudosai 2 месяца назад +2

    why do we want to shard based on city when all the data can easily fit in memory of a redis server?
    we can have 2-3 replicas of the primary redis server for availability & serving read requests
    model = rider id (uuid which takes 16 bytes), status (1 byte for online/offline), location (52 bits or 7 bytes as per redis geohash doc)
    assuming riders = 10^9 (1 billion), the size estimate becomes 10^9 * (16 + 1 + 7) = 24 GB
    this can easily fit in a redis server and serve 100k qps / replica which is a lot for this system.
    ---
    Liked the pushback on not maintaining a persistent connection. It makes sense and is logical. Clients polling every 2-3 seconds is a simple and effective solution. No need to complicate it and maintain websocket servers or long polling connections which take up memory without adding any business value

  • @oussamasethoum1665
    @oussamasethoum1665 3 дня назад

    In term of implementation would you do another video which will be interesting.

  • @RamkumarL-o9z
    @RamkumarL-o9z 4 месяца назад

    Interesting design and discussion.

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

    Amazing video as always, thanks Keerti and Gaurav

  • @harshadgohil408
    @harshadgohil408 Месяц назад

    For delivery Updates you can use kafka call

  • @Black_hacker-mj2ro
    @Black_hacker-mj2ro 3 месяца назад

    First Save Data in Redish Cache and distributed cache later on save in your central DB and Delivery boys should be in order of priority queue

  • @narissakarimahajratalli6779
    @narissakarimahajratalli6779 3 месяца назад

    Can you do a video similar to a food delivery service but with a specific focus on an ordering workflow and restaurant integration?

  • @sandipan329
    @sandipan329 6 месяцев назад +1

    @KeertiPurswani, Gaurav, what tool/website do you use to draw the shapes for system design, the one in the video seems really smooth here!!

    • @unity001
      @unity001 3 месяца назад

      Mirro / Gliffy

  • @BloggerVikash
    @BloggerVikash Месяц назад

    Along with Api call by person to RiderManager, there should be a limited socket connection as well.
    Like when the people is on tracking screen or page, the API call will hit, and that will fetch the latest updated location of the rider,
    but the API will also make a connection with webscoket, and send a message (start_tracking) to get consistent connection update from the Rider.
    Once he wish to leave that tracking screen or page, send a websocket message(stop_tracking) to disconnect the connection.
    I think, this will fulfill all the requirement in optimized way.
    What do you think?

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

    don't you think for updating the location its better to have a seperate service where delivery partner sends location updates to which updates the cache instead of delivery matching service since it could have a lot of persistent connections and can be scaled independently, because there may be few orders in a day and some days can have large orders which would make the load on delivery matching service quite high, because anyway we have to update the location of drivers, or am i missing something?

  • @chaitanyasravanthi9869
    @chaitanyasravanthi9869 2 месяца назад

    What is this tool you use to draw?

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

    Which keyboard does gaurav has ?

  • @biswajitroy_isgpp2343
    @biswajitroy_isgpp2343 6 месяцев назад

    Hey gaurav can u explain the persistent connection

    • @BloggerVikash
      @BloggerVikash Месяц назад

      Live connection between two, like you are online on whatsapp, you are getting live chat messages, you are sending live chat messages.

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

    Thankyou

  • @akshaynaik1719
    @akshaynaik1719 7 месяцев назад +1

    Which tool you using for designing?

  • @rsroyalrahul5
    @rsroyalrahul5 Месяц назад

    you guys designed a location based service without discussing geohashes!
    Disappointing!

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

    🙏🙂👍

  • @Rapopper
    @Rapopper 3 месяца назад

    😢nicd

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

    1st