Bộ câu hỏi mang dấu vân tay của domain này — mỗi câu nằm trong danh sách vì
sự vắng mặt của nó từng phải trả giá, và cái giá đó đã được viết lại ở chỗ
khác trên site.
Những câu hỏi bắt buộc phải có lời đáp:
- Supplier trả HTTP 200 kèm body lỗi thì chuyện gì xảy ra? Một lỗi bị nuốt ở
đúng chỗ này từng làm ba tính năng chết lặng lẽ mà không có lấy một dòng
error.
book có idempotent khi client retry không? Timeout cộng một lần retry
không được phép thành hai booking.
- State này module nào sở hữu, và ai được phép đọc? Nếu câu trả lời là "ai
cũng được" thì sáu tháng nữa các module hàn dính vào nhau.
- Lệnh rollout mang nhãn blast-radius nào — chỉ đọc, ghi vào dữ liệu
production, hay deploy? Nhãn phải nằm chỗ mắt chạm đầu tiên, không phải ở
đoạn văn thứ ba.
- Tính năng này go-live qua N repo thế nào — thứ tự merge ra sao, cặp MR nào
phải lên cùng nhịp? Sót một repo là thu thiếu tiền của khách mà không ném
ra lỗi nào.
- Con số nào trong tài liệu là đo được, con số nào là ước lượng? Số nào cũng
phải mang nhãn; một ước lượng bị tưởng nhầm là số đo là cách nhanh nhất để
cả tài liệu mất uy tín.
- Trong lúc tính năng đang hỏng, client nhìn thấy gì — một lỗi, hay một kết
quả rỗng trông y như một câu trả lời?
Điều kiện vào — buổi review chưa bắt đầu khi chưa có:
- vấn đề được viết ra giấy, kèm những con số đang thực sự có, từng số dán
nhãn đo được hay ước lượng;
- failure mode được gọi tên — người dùng thấy gì khi nó vỡ, chứ không chỉ
chỗ nào ném exception;
- các phương án là phương án thật, nêu kèm ràng buộc của chúng, không phải
bù nhìn dựng lên để thua.
Điều kiện ra — buổi review chưa xong khi chưa có:
- mọi đường ghi đều chạy dry-run → in kế hoạch → xác nhận → apply → đọc lại
để verify, và chính công cụ ép chuyện đó thay vì trông vào trí nhớ con
người;
- mọi thứ rời khỏi process — log, alert, analytics — đều có allow-list, vì
egress là một đường biên;
- một mục "điều tôi chưa chắc" — tốn đúng một đoạn văn, và là khác biệt giữa
tài liệu đồng nghiệp xây tiếp được với tài liệu họ phải verify lại từ đầu;
- nếu thay đổi trải trên nhiều repo, danh sách repo phải viết đủ và thứ tự
merge phải chốt xong trước khi bất cứ thứ gì được ship.
Ở đây không có con số "đã chạy bao nhiêu buổi review", vì chưa ai đo — bản
checklist mới là thứ được giao.
Mọi thứ phía trên ngồi trên một tầng tổng hợp duy nhất: ~150 mã supplier
trên ~90 tích hợp, trải trên 5 dòng sản phẩm. Bản đồ dưới đây cố ý chỉ vẽ
cấu trúc — các trục, không phải ma trận đếm.
| Trục |
Giá trị |
| Dòng sản phẩm |
Khách sạn · Vé máy bay · Tour · Xe đưa đón · Thuê xe |
| Họ giao thức |
REST-JSON · SOAP-XML · push-cache · polled availability |
| Pattern tạo offer |
A — một token đặt N phòng · B — ma trận vật chất hoá của các tổ hợp phòng-giá hợp lệ |
| Runtime |
Node.js/TypeScript (stack hằng ngày) · Python (adapter FastAPI) · Go (adapter) |
Cố ý không có số đếm theo từng dòng, từng giao thức: những con số đó nằm
trong registry supplier, và một con số chỉ xuất hiện trên site này sau khi
nó thực sự được kéo ra và đo.