Bỏ qua để đến nội dung
Knowledge Hub

ADR và tài liệu kỹ thuật: ghi lại vì sao, không chỉ cái gì Trung cấp

Trang này cho bạn bản đồ của cụm: mỗi loại tài liệu trả lời câu hỏi nào, và nên đọc phần nào trước.

Kỹ sư mới hỏi: “Sao order service không publish Kafka ngay sau commit mà phải qua bảng outbox?” Không ai trả lời được. Người quyết định đã nghỉ, thread Slack đã trôi mất.

Hai kết cục quen thuộc, đúng như Nygard mô tả năm 2011:

  • Chấp nhận mù quáng (cargo-culting): giữ outbox, rồi copy sang cả service không cần, vì “kiến trúc nó vậy”.
  • Đảo ngược mù quáng (re-litigating): ai đó “đơn giản hoá” về publish trực tiếp. Ba tháng sau, sự cố mất event lặp lại.

Code trả lời cái gì. Git log trả lời khi nào, ai. Không gì trong repo trả lời vì sao, đã loại phương án nào: đó là chỗ của ADR.

Đang tải diagram…

Phần Câu hỏi nó trả lời
ADR là gì ADR là gì, khi nào đáng viết, chọn Nygard hay MADR?
Viết ADR tốt Một ADR tốt trông thế nào, đổi ý thì làm gì với ADR cũ?
Docs ngoài ADR Design doc, Diátaxis, runbook on-call, sơ đồ C4 dùng khi nào?
Giữ docs sống Làm sao để docs không mục; checklist review ADR và README
Lỗi hay gặp ADR, runbook, README hay viết sai thế nào, hậu quả ra sao?
Câu hỏi của người đọc Loại tài liệu Viết khi nào Sống ở đâu
“Vì sao hệ thống làm thế này?” ADR Ngay khi chốt một quyết định khó đảo ngược docs/adr/NNNN-*.md trong repo
“Nên làm thế nào, phương án nào?” Design doc / RFC Trước thay đổi lớn, còn mơ hồ Repo hoặc công cụ doc của team, link từ ADR
“Chạy service này lên thế nào?” README (quickstart) Từ commit đầu tiên README.md ở gốc repo
“Alert X đang kêu, làm gì?” Runbook Cùng PR thêm alert docs/runbooks/, link từ alert
“Endpoint/event/env var này nhận gì?” Reference Sinh từ code nếu được OpenAPI, schema event, bảng config
“Các khối lớn nối với nhau ra sao?” Sơ đồ C4 mức 1–2 Khi thêm/bớt service hoặc datastore docs/architecture.md

Mặc định của cụm: mọi thứ trên nằm trong repo, review trong cùng PR với code. Ngoại lệ hay gặp là design doc cần comment rộng ngoài team.

Tiếp theo: ADR là gì và khi nào viết.