GuidanceSubmissions
30:00
Guidance

Thiết kế hệ thống đặt lịch hẹn

cho một chuỗi phòng khám nha khoa đa chi nhánh.

Thiết kế hệ thống đặt lịch hẹn

NOT SAVED
0 words·0 / 8,000 chars
Thiết kế hệ thống

Nền tảng Giao dịch Hai chiều

Thiết kế một sàn giao dịch hai chiều không chỉ là làm một app CRUD đơn giản. Trọng tâm kiến trúc nằm ở việc điều phối các trạng thái phức tạp, đảm bảo tính nhất quán giao dịch (chống đặt trùng), và xây dựng bộ máy ghép nối (matching) thời gian thực có khả năng mở rộng cao.

Step 1

Thiết kế State Machine

Các sàn giao dịch về bản chất là những cỗ máy quản lý trạng thái phức tạp. Hãy vẽ ra vòng đời của một giao dịch (VD: Yêu cầu xe -> Đang tìm tài xế -> Đã nhận cuốc -> Đang di chuyển -> Hoàn tất). Làm rõ cách các thay đổi trạng thái được truyền tải theo thời gian thực (dùng WebSockets hoặc SSE) để đồng bộ màn hình của cả người mua và người bán.

Step 2

Định vị (Geolocation) & Search Indexing

Step 3

Kiểm soát Concurrency (Bài toán Đặt trùng)

Step 4

Đánh đổi trong Thuật toán Ghép nối (Matching)

Step 5

Giao dịch Phân tán & Thanh toán

Additional Tips

  • Idempotency là bắt buộc: Lỗi mạng chắc chắn sẽ xảy ra. Nếu app bị rớt mạng và gọi lại (retry) API "Xác nhận thanh toán", bạn không được trừ tiền 2 lần. Việc nhắc đến Idempotency Keys cho mọi API giao dịch chứng tỏ bạn có kinh nghiệm thực chiến dày dặn.
  • Mở rộng Không đối xứng (Asymmetric Scaling): Cung và Cầu mở rộng không giống nhau. Đêm Giao thừa, một app có lượng gọi xe khổng lồ nhưng cung tài xế lại rất thấp. Hãy giải thích kiến trúc phải cho phép mở rộng (scale) các service 'Yêu cầu xe' độc lập hoàn toàn với service 'Tracking Vị trí Tài xế'.
  • Cầu nối Tech-Product ở "Bài toán Khởi động Lạnh": Thể hiện Product Sense. Một hệ thống công nghệ hoàn hảo sẽ vô dụng nếu thiếu thanh khoản (liquidity). Nhắc ngắn gọn cách hệ thống nên hỗ trợ chạy khuyến mãi nhắm mục tiêu hoặc định giá động (Surge Pricing) để kích thích nguồn Cung khi lượng Cầu vượt quá mức.