Điều khiển buổi design 45–60 phút
Interview đánh giá cách thu hẹp ambiguity, lượng hóa và bảo vệ trade-off, không phải số logo trên diagram.
1. Timebox
| Phút | Mục tiêu |
|---|---|
| 0–7 | Scope, users, critical journeys, exclusions và SLO |
| 7–13 | Estimate order of magnitude |
| 13–20 | API, data model và invariants |
| 20–32 | High-level read/write flows |
| 32–48 | Deep dive bottleneck/failure quan trọng |
| 48–60 | Security, observability, evolution, recap trade-offs |
2. Decision loop
Requirement → constraint/number → candidate → trade-off → choice → failure/metric. Nói assumptions thành tiếng và ghi decision log để interviewer thay constraint mà design vẫn evolve được.
EN opening: “Before choosing components, I would like to clarify the core user journey, expected scale, latency and availability targets, consistency requirements, retention, and any security or compliance constraints.”
3. Diagram discipline
Vẽ boundary và arrows có ý nghĩa: protocol, sync/async, data owner, read/write direction. Chỉ thêm component khi giải quyết requirement. Đánh dấu source of truth, cache, queue và failure domain.
4. Deep dive
Chọn phần rủi ro nhất: key generation, ordering, payment correctness, fan-out, hot partition hay global connection management. Không cố đào sâu mọi thứ ngang nhau.
5. Red flags
- Nhảy thẳng vào microservices/Kafka.
- Không hỏi scale hoặc consistency.
- Estimate không ảnh hưởng quyết định.
- Diagram không có data flow.
- Không recap trade-off/migration.