Long Polling, Websockets, Server Sent Events - Who Wins? | Systems Design with Ex-Google SWE

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 31

  • @matthewsaucedo2471
    @matthewsaucedo2471 ปีที่แล้ว +5

    Really enjoying this content; you break the content down in a really approachable way!
    I think the depth of info covered is pretty good too. Obviously not too detailed but enough to enable people to know what to search for if they decide they want to learn more.

    • @jordanhasnolife5163
      @jordanhasnolife5163  ปีที่แล้ว +3

      Yeah at the end of the day it's an interview channel, don't want to bombard everyone too hard haha

  • @ankitasajwan931
    @ankitasajwan931 14 วันที่ผ่านมา +1

    Hey Jordan
    Thank you for this great content.
    The notes you create while recording videos. Is there any way possible, you can share them?

    • @jordanhasnolife5163
      @jordanhasnolife5163  13 วันที่ผ่านมา

      I already have, go to the substack link in my channel about page

  • @ored5138
    @ored5138 ปีที่แล้ว +2

    Hi, watched a few videos of yours.
    Very nice job, helps me a lot!

  • @user-sx4wm5ls5q
    @user-sx4wm5ls5q หลายเดือนก่อน +1

    I guess the websockets need to be sticky sessioned(a client being only connected to one of the horizontal scaled servers?), hence to keep it connected with the client & service...?
    If so, in case of failure and how do we know which data to send again from the server?(I guess this question goes same for the UDP, how does the Netflix know I watched this video until certain time when the server that respond gets killed? If we sacrifice the reliability, i guess we can just restart from some random(But recent) time?).
    PS. But again, thanks for the awesome video. Your my life savor and I mean it!(forgot to add this.)

    • @jordanhasnolife5163
      @jordanhasnolife5163  หลายเดือนก่อน

      In your netflix example, we can never be perfect, but the server basically persists the last known timestamp until it dies.

  • @agent000000008
    @agent000000008 12 วันที่ผ่านมา +1

    Hey Jordan. A bit confused here about long polling (thanks for all the content btw):
    If we long poll, don’t we also hold an open (though not persistent) connection? And if we need to reestablish it anyways, isn’t it twice the load on server? Both has to hold open connection and also receive a new request for each new data event?
    Always thought that long polling was inefficient exactly for the reason of an open connection held on the server and that web sockets at least slightly decreased the load there

    • @jordanhasnolife5163
      @jordanhasnolife5163  5 วันที่ผ่านมา

      I don't really disagree with anything that you've said! That being said, polling can have the occasional nice property of basically rebalancing itself to another server via load balancing if one becomes overloaded

  • @povdata
    @povdata ปีที่แล้ว +2

    Thank you! The SSE works like broadcast from server. So all clients gets the same data result. How to send data for specific clients, for exmaple who has subscription on category: "news". I write more in application layer.

    • @amartyaa
      @amartyaa ปีที่แล้ว +3

      This feels more like a 'pub/sub' kind of problem. I'll say the combination of pub sub and SSE will be a good idea here.

    • @tomaszzieba315
      @tomaszzieba315 ปีที่แล้ว +2

      For every client, you have a different "session" in SSE. So when a user is logged in and has the session opened you send an event to a user which. No session -> no event send

    • @jordanhasnolife5163
      @jordanhasnolife5163  ปีที่แล้ว +1

      Perhaps using different event sources

    • @povdata
      @povdata ปีที่แล้ว

      @@tomaszzieba315 seems SSE does not support session. could you help me?

  • @Nero21952
    @Nero21952 8 หลายเดือนก่อน +1

    Great content Jordan, thank you for all your videos. I was curious - are stock trading platforms or websites that display live updates (say sports sites with live scores, etc) using SSEs?

    • @jordanhasnolife5163
      @jordanhasnolife5163  8 หลายเดือนก่อน +1

      I would imagine that some percentage of them are, but hard to say without checking each codebase individually

    • @almirdavletov535
      @almirdavletov535 7 หลายเดือนก่อน +1

      Or network tab 😄

  • @Gitsniks
    @Gitsniks ปีที่แล้ว +1

    should i watch the newer versions of your videos or both the old and new versions? like for this topic, is it fine just to watch this vid or the old one

    • @jordanhasnolife5163
      @jordanhasnolife5163  ปีที่แล้ว +1

      I think the newer ones are meant to be strictly better than the older ones. Ideally it's all of the same content, but just better for visual learners.
      Gonna do the same for the interview problems starting in a couple of weeks

  • @TOc0olFORu
    @TOc0olFORu ปีที่แล้ว +2

    Hair looking fly today

  • @yrfvnihfcvhjikfjn
    @yrfvnihfcvhjikfjn ปีที่แล้ว +3

    LMAO at that intro

  • @zhonglin5985
    @zhonglin5985 7 หลายเดือนก่อน +1

    I noticed in the old vid you mentioned WebSockets were the ones having thundering herb problem due to reconnects, while in this new vid you are saying only SSE will have this problem. Should we say they both have this problem?

    • @jordanhasnolife5163
      @jordanhasnolife5163  7 หลายเดือนก่อน

      Hmm interesting, maybe a typo on my end, it's just SSE that automatically reconnect by default, but if you naively reconnect a websocket right when it breaks I suppose you could have a thundering herd issue there too.

  • @mcee311
    @mcee311 ปีที่แล้ว +4

    How does server side event know which client to reestablish connection with? Do they maintain a list of clients?

    • @jordanhasnolife5163
      @jordanhasnolife5163  ปีที่แล้ว +1

      I believe this is handled by the client

    • @sahilguleria6976
      @sahilguleria6976 3 หลายเดือนก่อน

      I believe client subscribes for the events, not exactly like PUB-SUB model, from chatGPT
      In Server-Sent Events (SSE), it's the client that initiates and establishes the connection to the server and then the server pushes updates through that established connection.

  • @spokesperson_usa
    @spokesperson_usa ปีที่แล้ว +3

    Web2 browser scripting isn't software engineering, it's script kid engineering.