Part 10 · System Design · 10.3a
Part 10 thực hành / Deep dive
System Design: timed execution labs
Mỗi bài tạo một evidence pack gồm requirements, estimates, diagram, sequences, failure matrix, decisions và constraint change.
Lab A · Banking transfer trong 60 phút
- 0–10 phút: clarify internal/external transfer, money invariant, volume, p99, availability, RPO/RTO, audit/compliance.
- 10–20: estimate peak QPS, concurrency, yearly ledger size, DB connections và burst.
- 20–35: API/idempotency, double-entry schema, write/read flows và source of truth.
- 35–50: timeout unknown outcome, duplicate, locking, reconciliation, AZ failure và overload.
- 50–60: security, observability, cost, largest risk và evolution trigger.
Required artifacts
requirements.md
capacity.md
architecture.drawio/svg
transfer-sequence.md
failure-matrix.md
ADRs/001-ledger-boundary.md
Gate: mọi component có capacity limit/failure signal; không claim exactly-once hoặc “multi-AZ là đủ”.
Lab B · Constraint injection
- Không vẽ lại từ đầu; xác định assumption nào vỡ.
- Tìm bottleneck đầu tiên bằng numbers.
- Đề xuất migration nhỏ nhất, trade-off và metric xác nhận.
- Nêu rollback/forward path.
Lab C · Design comparison
- Thiết kế Order–Inventory dạng modular monolith.
- Thiết kế lại thành microservices.
- So transaction, deploy, testing, on-call, scale và team ownership.
- Viết ADR chọn một và trigger đổi quyết định.
Lab D · Verbal defense
- Record 10-minute English walkthrough.
- Reviewer hỏi 10 follow-ups về failure/security/capacity.
- Đánh dấu unsupported claim và filler.
- Chấm 0–2 cho 10 rubric dimensions; target ≥15/20, reliability/security không bằng 0.
Deliverables
- Numbers có assumptions và units.
- Critical sequences cho success và unknown outcome.
- Failure matrix có detection/recovery.
- ADR có rejected alternatives.
- Constraint response và self-review recording.