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: đặt vé không trùng ​

Rạp phim, chuyến bay, phòng khách sạn: hai người không được đặt cùng một chỗ.

Dàn ý ​

  1. Yêu cầu: chọn chỗ, giữ chỗ trong vài phút, thanh toán, huỷ.
  2. Chặn trùng: UNIQUE (suất chiếu, ghế), khoá dòng, compare-and-set trạng thái ghế.
  3. Giữ chỗ có hạn: held_until, job thu hồi, hoặc TTL trên Redis.
  4. Tải đột biến khi mở bán: hàng đợi ảo (waiting room).
  5. Thanh toán và giữ chỗ: saga, bù trừ khi thanh toán thất bại.