Skip to content
Draft · Trang này mới là dàn ý, chưa viết đầy đủ. Xem mọi trang nháp

Case study: chat ​

Nhắn tin một-một và nhóm, thời gian thực.

Dàn ý ​

  1. Kết nối thời gian thực: WebSocket, gateway giữ kết nối, định tuyến tới đúng gateway.
  2. Lưu tin nhắn: khoá (conversation_id, message_id), ID có thứ tự thời gian (Sinh ID), phân trang ngược.
  3. Shard theo cuộc trò chuyện.
  4. Trạng thái đã gửi, đã nhận, đã đọc; online/offline.
  5. Tin nhắn khi người nhận offline: push notification, đồng bộ khi kết nối lại.
  6. Nhóm lớn: fan-out.