Giai đoạn 3 · Giải thích kỹ thuật
Design review
Trình bày kiến trúc theo khung context → problem → options → decision và trả lời câu hỏi.
Tình huống
Bạn trình bày thiết kế cache cho trang checkout trước architecture board.
Hội thoại mẫu
You · Solution Architect
Let me give you a high-level overview first.
Để mình trình bày tổng quan trước.
You · Solution Architect
The context is that our checkout is getting slower every month.
Bối cảnh là trang checkout của mình chậm dần mỗi tháng.
You · Solution Architect
The problem is that every request hits the database directly.
Vấn đề là mọi request đều gọi thẳng vào database.
You · Solution Architect
We looked at three options. In the end, we decided to add a Redis cache in front of the product catalog.
Bọn mình xem ba phương án. Cuối cùng chọn thêm Redis cache trước product catalog.
You · Solution Architect
Does that make sense so far?
Tới đây mọi người thấy ổn chưa?
Emma · Principal Engineer
Mostly. Have we considered what happens to prices when the cache is stale?
Cơ bản là ổn. Đã tính tới chuyện giá bị cũ khi cache chưa cập nhật chưa?
You · Solution Architect
Good question. Prices are never cached. We only cache product descriptions and images.
Câu hỏi hay. Giá không bao giờ được cache. Bọn mình chỉ cache mô tả và hình ảnh sản phẩm.
Emma · Principal Engineer
Great. And what's the rollback plan?
Tốt. Còn kế hoạch rollback thế nào?
You · Solution Architect
It's behind a feature flag, so we can turn it off in seconds.
Nó nằm sau feature flag, nên có thể tắt trong vài giây.
Cụm câu chính
Let me give you a high-level overview first.
Để mình trình bày tổng quan trước.
The context is that our checkout is getting slower every month.
Bối cảnh là trang checkout của mình chậm dần mỗi tháng.
The problem is that every request hits the database directly.
Vấn đề là mọi request đều gọi thẳng vào database.
We looked at three options.
Bọn mình đã xem xét ba phương án.
In the end, we decided to go with Postgres because the team already knows it.
Cuối cùng bọn mình chọn Postgres vì team đã quen dùng.
Does that make sense so far?
Tới đây mọi người thấy ổn chưa?
Have we considered what happens if the service goes down?
Mình đã tính tới trường hợp service bị sập chưa?
Let me walk you through the request flow.
Để mình đi qua luồng request cho mọi người.
Cách luyện
- Chọn một hệ thống bạn đang làm. Viết 1 câu cho mỗi bước context / problem / options / decision.
- Trình bày 5 phút, ghi âm, sau đó tự trả lời 3 câu hỏi khó (rollback, chi phí, scale).
- Shadowing đoạn mở đầu cho tới khi ngữ điệu tự nhiên.