注目★★★★★Lobsters
WebSockets vs SSE、勝負は速度よりイベント順序
30秒で把握
- 1José Valim が WebSockets と SSE の比較軸を順序と正しさに変更
- 2SSE + Fetch の複数ストリームは古い更新が後着し UI を不整合化
- 3WebSockets は双方向接続で操作と応答の因果順序を保持
要約
José Valim は、WebSockets と SSE の比較軸をレイテンシではなくイベント順序とデータの正しさに置くべきだと論じた。SSE と Fetch のように複数ストリームが同じ UI を更新すると、同時処理の因果関係が失われ、古い更新が後から届いて画面を不整合な状態に固定する。これは「最終的に収束する」という eventual consistency では解決しない。WebSockets は双方向接続で操作と応答を同じ経路に載せ、順序を保ちやすい。SSE + Fetch でも実現できるが、内部キューや追加取得による遅延・負荷、クライアント側の順序制御が必要になる。
あなたへの影響
リアルタイム UI を実装する日本のエンジニアは、通信方式の選定前に複数ストリーム間の因果順序と古い更新の扱いを検証すべき。
推奨:順序保証を後付けすると遅延や追加負荷につながり得るため、操作と更新を同一経路で扱う設計やクライアント側のキュー制御を評価するとよい。