# DEC — Sổ quyết định không đủ tầm ADR — e-commerce | | | |---|---| | **Version** | 1.29 | | **Date** | 2026-09-15 | | **Author** | SA (qua skill sa-1-context, sa-2-architecture) | | **Status** | 🟡 Draft — cập nhật liên tục qua các giai đoạn | | **Approved by** | — *(sổ theo dõi, không cần baseline riêng)* | | **Source** | `01-context/CTX_e-commerce_v1.0.md (v1.2 trong header)` §0, §3, §4, §7, §7.1 · `01-context/OPT_e-commerce_v1.0.md` §0, §1, §2, §9 · `01-context/TCO_e-commerce_v1.0.md` §0 · `01-context/ARISK_e-commerce_v1.0.md` §0 · `02-architecture/ASR_e-commerce_v1.0.md` §0 · `02-architecture/SAD_e-commerce_v1.0.md` v1.3 §0 · `02-architecture/adr/ADR-001…013_*.md` §0 · `02-architecture/ICD_e-commerce_v1.0.md` §0 · `02-architecture/FAIL_e-commerce_v1.0.md` v1.1 §0 · `02-architecture/DAT_e-commerce_v1.0.md` §0 · `02-architecture/SEC_e-commerce_v1.0.md` §0.1 · `02-architecture/INF_e-commerce_v1.0.md` §0 | | **Scope** | Toàn dự án e-commerce (kiến trúc) | | **Confidence** | 🟡 Sổ theo dõi — nội dung tham chiếu từ `CTX`/`OPT`/`TCO`/`ARISK` (các tài liệu đó là 🔴) | ## Change Log | Version | Date | Người sửa | Thay đổi | ADR | |---|---|---|---|---| | 1.0 | 2026-09-10 | SA (qua skill sa-lifecycle) | Khởi tạo sổ DEC kiến trúc, khung rỗng | — | | 1.1 | 2026-09-12 | SA (qua skill sa-1-context) | Thêm `DEC-01` (ngoại lệ gate GĐ1 SA chạy khi BA chưa qua G1) | — | | 1.2 | 2026-09-12 | PO (uỷ quyền, Điều phối dự án) — tác vụ sign | Thêm `DEC-02` (chốt hướng trả lời `OQ-002`: dùng giả định "team MVP chuẩn" `Confidence` 🔴 cho ràng buộc Con người ở Bước 2); ghi nhận phê duyệt tạm §2 Driver của `CTX v1.0` (xem Change Log của `CTX`) | — | | 1.3 | 2026-09-12 | SA (qua skill sa-1-context, hoạt động `constraints`) | Thêm `DEC-03` (tiếp tục ngoại lệ gate `DEC-01` sang Bước 2 — Ràng buộc; người dùng tái khẳng định muốn tiếp tục dù AG1/G1 chưa qua) | — | | 1.4 | 2026-09-12 | SA (qua skill sa-1-context, hoạt động `as-is`) | Thêm `DEC-04` (đóng `OQ-009` — chấp nhận `SAD.md`/hồ sơ thầu làm điểm khởi đầu tham khảo cho Bước 4 `OPT`, có điều kiện); tiếp tục ngoại lệ gate `DEC-01`/`DEC-03` sang Bước 3 — Hiện trạng (AS-IS); người dùng tái khẳng định muốn tiếp tục dù AG1/G1 chưa qua | — | | 1.5 | 2026-09-12 | SA (qua skill sa-1-context, hoạt động `options`) | Thêm `DEC-05` (tiếp tục ngoại lệ gate `DEC-01`/`DEC-03`/`DEC-04` sang Bước 4 — Phương án `OPT`; người dùng tái khẳng định muốn tiếp tục dù AG1/G1 chưa qua). `OPT_e-commerce_v1.0.md` tạo mới, khuyến nghị P2 có điều kiện, chưa PO/Tech Lead ký | — | | 1.6 | 2026-09-12 | PO (uỷ quyền, Điều phối dự án) — tác vụ sign | Thêm `DEC-06` (duyệt từng phần `OPT_e-commerce_v1.0.md` v1.0: chấp nhận bộ tiêu chí/trọng số mặc định (đóng `ASM-09`), bảng chấm điểm, phương án bị loại P3/P4, khuyến nghị P2 có điều kiện; **chọn P2** làm nền cho Bước 5/GĐ2 với điều kiện `OQ-010`/`OQ-012`). Đóng `OQ-011` trong sổ `00-index/OQ_e-commerce.md`. `OPT` giữ Status Draft, Tech Lead chưa ký, `Confidence` giữ 🔴 | — | | 1.7 | 2026-09-12 | SA (qua skill sa-1-context, hoạt động `cost-risk`) | Thêm `DEC-07` (tiếp tục ngoại lệ gate sang Bước 5, phần `TCO`; người dùng tái khẳng định muốn tiếp tục) và `DEC-08` (tiếp tục ngoại lệ gate sang Bước 5, phần `ARISK`). `TCO_e-commerce_v1.0.md` và `ARISK_e-commerce_v1.0.md` tạo mới — GĐ1 SA nay đủ 4 artifact (`CTX`/`OPT`/`TCO`/`ARISK`) để audit AG1, dù tự chấm từng file vẫn cho thấy AG1 chưa đủ điều kiện ký chính thức (nhiều `OQ` còn mở) | `DEC-07`, `DEC-08` | | 1.8 | 2026-09-12 | PO (uỷ quyền, Điều phối dự án) — tác vụ sign | Thêm `DEC-09` (duyệt từng phần `TCO_e-commerce_v1.0.md` v1.1 sau khi sửa lỗi chép số §1 P2-B: chấp nhận cấu trúc 4 nhóm chi phí, 2 kịch bản tải A/B, kết luận "P2 rẻ hơn P1"; đơn giá AWS/tỷ giá/FTE Ops/5 khoản non-labor chưa xác nhận) và `DEC-10` (duyệt từng phần `ARISK_e-commerce_v1.0.md` v1.0: chấp nhận 10 rủi ro và kế hoạch `POC-01`/`POC-02`; POC chưa chạy). Cả hai giữ Status Draft, `Confidence` 🔴, `OQ-004` mở, AG1 chưa ký. | `DEC-09`, `DEC-10` | | 1.9 | 2026-09-14 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `qas`) | Thêm `DEC-11` (bắt đầu `sa-2-architecture` hoạt động `QAS` dù AG1 chưa có chữ ký PO/Tech Lead thật và `POC-01`/`POC-02` chưa chạy — tiếp nối `DEC-01…10`, người dùng tái khẳng định muốn tiếp tục). `QAS_e-commerce_v1.0.md` tạo mới — 14 `QAS` lượng hoá từ `NFR-01…08` (SAD) và `NFR-PERF/SEC/AVL` (BA), `Confidence` 🔴 toàn bộ. Không tạo `ASR`/`SAD`/`ADR` ở lượt này theo yêu cầu điều phối. | `DEC-11` | | 1.10 | 2026-09-14 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-12` (duyệt từng phần `QAS_e-commerce_v1.0.md` v1.0: chấp nhận 14 `QAS` đủ 6 phần và cách đo; chấp nhận TẠM các số SA đề xuất `QAS-003/004/007/014`, `OQ-018…021` giữ mở; chốt điều kiện diễn tập DR `QAS-008` phải thực hiện trước khi ký AG2, cập nhật `OQ-022`). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Security/Ops chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-12` | | 1.11 | 2026-09-14 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `asr`) | Thêm `DEC-13` (tiếp tục `sa-2-architecture` hoạt động `ASR` dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…12`). `ASR_e-commerce_v1.0.md` tạo mới — 15 `ASR`, 12/15 có `ADR` ứng viên (radar 4–9), `ADR-001` (kiểu kiến trúc tổng thể P2) vẫn nợ từ `DEC-06`. Thêm `OQ-024/025`, `ASM-19…21`. Không viết `ADR` nào. | `DEC-13` | | 1.12 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-14` (duyệt từng phần `ASR_e-commerce_v1.0.md`: chấp nhận 15 `ASR-001…015` và 12 `ADR` ứng viên `ADR-001…012` với radar ước lượng; `ADR-005/006/009` (radar ≥8) chỉ `Accepted` sau `POC-01`/`POC-02`/diễn tập DR. Chốt TẠM `OQ-024` (MFA Admin = TOTP app, `ASM-20`) và `OQ-025` (không dịch nội dung seller ở MVP, `ASM-21`) — cả hai giữ nguyên mở). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Security/Ops chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-14` | | 1.13 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `sad`) | Thêm `DEC-15` (tiếp tục `sa-2-architecture` hoạt động `SAD` dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…14`). `SAD_e-commerce_v1.0.md` tạo mới — C4 Context/Container/Component (Cart&Order), deployment view AWS `ap-southeast-1` đối chiếu `TCO §3.2` (1 điểm lệch mức chi tiết phát hiện, ghi `OQ-026`, không tự đổi số `TCO`), 15 `CMP` (ma trận `ASR×CMP` đủ 15/15), 22 `IF-nn` ứng viên cho `ICD`, đánh dấu 12 chỗ chờ `ADR-001…012` (không viết `ADR`). Thêm `OQ-026/027`, `ASM-22/23`. | `DEC-15` | | 1.14 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-16` (duyệt từng phần `SAD_e-commerce_v1.0.md` bản v1.0: chấp nhận C4 Context/Container/Component, deployment view, bảng `CMP-01…15`, ma trận `ASR→CMP` đủ 15/15, 22 `IF-nn` ứng viên, 12 chỗ chờ `ADR`. Chốt TẠM `OQ-026` (2 ECS Fargate service riêng theo Nhóm Giao dịch/Nhóm Hỗ trợ, `TCO §3.2` giữ nguyên tới khi hoạt động `inf` xác nhận, `ASM-23`) và `OQ-027` (Identity & Access thuộc Nhóm Giao dịch, `ASM-22`) — cả hai **giữ nguyên mở**). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Security/Ops chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-16` | | 1.15 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `adr`) | Thêm `DEC-17` (tiếp tục `sa-2-architecture` hoạt động `adr` cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…16`). Viết đủ 12 `ADR-001…012` trong `02-architecture/adr/` theo danh sách ứng viên đã duyệt từng phần ở `ASR §B2`/`DEC-14` và `SAD §8`/`DEC-16` — không đổi số thứ tự, không đổi radar ước lượng. **Tất cả 12 ADR ở Status `Proposed`** — không ADR nào `Accepted` vì chưa có chữ ký thật (Tech Lead + Security + Ops/SRE); `ADR-005`/`ADR-006`/`ADR-009` (radar ≥8) ghi rõ điều kiện `Accepted` là `POC-01`/`POC-02`/diễn tập DR PASS, hiện chưa chạy; `ADR-008` (PII) ghi phủ quyết Security/Legal, chặn hoàn toàn tới khi có người (`OQ-007`). Cập nhật `ADL_e-commerce.md` (12 ADR `Proposed`, radar, nguồn, `ASR` phục vụ, §7/§8/§9). Cập nhật `SAD_e-commerce_v1.0.md` §8 lên v1.1 (chỉ link ADR đã viết vào bảng đã có, không đổi nội dung chuyên môn khác). `DEC-06` (chọn P2, GĐ1) được trả nợ bằng `ADR-001` — không còn "nợ" treo ở `DTM`/`ADL`. Không sửa `SAD`/`ASR`/`QAS` phần nội dung đã duyệt từng phần khác. `Confidence` 🔴 toàn bộ 12 ADR. | `DEC-17`, `ADR-001…012` | | 1.16 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `icd`) | Thêm `DEC-18` (tiếp tục `sa-2-architecture` hoạt động `icd` cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…17`). `ICD_e-commerce_v1.0.md` tạo mới — catalog 17/17 `IF-nn` truy được từ `SAD §4` (chênh lệch "22" ghi ở `OQ-029`), chi tiết đầy đủ `IF-002` (4 endpoint Cart & Checkout) và `IF-005/006/007/008/009/015/021/022`. Xác nhận/điều chỉnh `API_US002-003_v1.0.md` của BA tại §5. Thêm `OQ-028…033`, `ASM-24…26`. *(Ghi bổ sung: Change Log này bị thiếu ở lượt chạy trước, bổ sung lại khi sign `DEC-19` để không đứt mạch version — không đổi nội dung `ICD` đã ghi.)* | `DEC-18` | | 1.17 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-19` (duyệt từng phần `ICD_e-commerce_v1.0.md` bản v1.0: chấp nhận catalog 17 `IF-nn`, chi tiết `IF-002` (4 endpoint Cart & Checkout), kết luận xác nhận/điều chỉnh `API_US002-003` của BA. Chấp nhận TẠM `ASM-24/25/26` và hướng denormalize `sellerName` (`OQ-033`) — `OQ-028…033` (SA) giữ nguyên mở). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Security/Ops chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-19` | | 1.18 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `sad`, sửa lỗi) | Thêm `DEC-20` (tiếp tục ngoại lệ gate cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…19` — để sửa lỗi nhất quán `SAD` theo phát hiện của `ICD`, `OQ-028`/`OQ-029`, theo yêu cầu người duyệt 2026-09-15). `SAD_e-commerce_v1.0.md` lên v1.2: (1) `IF-021` sửa mọi mô tả thành cross-network REST (không còn "internal") — legend §4, footnote §4.1, bảng §6.1/§6.3, bổ sung cạnh mạng còn thiếu ở §7; rà `IF-022` theo cùng nguyên tắc (làm rõ cũng cross-network, không đổi loại vì trước đó chưa có nhãn); `IF-005`/`IF-006` không đổi. (2) Đếm lại `IF-nn`: kết luận "22" là đếm nhầm, đúng 17 ID, không bỏ sót interface — sửa "22"→"17" ở header/Change Log/Tự chấm. Đóng `OQ-029` trong sổ `00-index/OQ_e-commerce.md`; `OQ-028` giữ nguyên mở. Đây là sửa lỗi tài liệu, không phải quyết định kiến trúc — không cần `ADR` mới, không sửa §8/`ASR`/`QAS`/`ADR`/`ICD`. `Confidence` giữ 🔴; Status giữ Draft; §4/§6/§7 v1.2 chưa được ký lại. | `DEC-20` | | 1.19 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `fail`) | Thêm `DEC-21` (tiếp tục `sa-2-architecture` hoạt động 8 — `FAIL` — cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…20`). `FAIL_e-commerce_v1.0.md` tạo mới — bảng 13 phụ thuộc vượt ranh giới process (`FM-01…13`, theo `SAD` v1.2 §6.3: VNPay, Momo, GHN, GHTK, Email/SMS, RDS chính, RDS Payment, Redis, SQS FIFO, EventBridge, `IF-006`, `IF-021` ưu tiên cao nhất, `IF-022`) đủ timeout/retry/idempotent/hết-retry-thì-sao/người dùng thấy gì; đủ 4 câu hỏi `D6` cho từng phụ thuộc; ngân sách timeout cộng dồn đường găng checkout (**phát hiện vượt ngân sách `QAS-002` ~7%** ngay cả sau khi siết timeout VNPay/Momo xuống 1.500ms — trình 2 lựa chọn kèm hệ quả bằng số, ghi `OQ-034`); circuit breaker/backoff/bulkhead cho toàn hệ thống; suy giảm có kiểm soát (Promotion lỗi — đề xuất mặc định không tự quyết, nối `OQ-017` BA; COD khi VNPay/Momo lỗi; GHN↔GHTK fallback chéo; phát hiện thiếu cache nội dung giỏ hàng cho fallback RDS chậm); 6 kịch bản hỏng toàn hệ thống; dữ liệu trong lúc lỗi; ánh xạ mã lỗi theo `AC_US-002/003`/`ICD §1` (3 mã lỗi mới đề xuất cho US-004 Checkout, chưa có trong `SRS` BA); đề xuất `FIT-16…22` (chaos test) cho GĐ3. Thêm `OQ-034…040`, `ASM-27…33`. Không sửa `SAD`/`ICD`/`ADR` đã có. `Confidence` 🔴 toàn bộ. | `DEC-21` | | 1.20 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-22` (duyệt từng phần `FAIL_e-commerce_v1.0.md` bản v1.0: chấp nhận bảng 13 phụ thuộc, bảng mã lỗi §5, `FIT-16…22`; chấp nhận TẠM ngưỡng circuit breaker/`OQ-035`, DLQ 14 ngày + cảnh báo lag >5 phút/`OQ-036`, bulkhead chờ `POC-02`/`OQ-037`, timeout RDS/Redis `ASM-27`/`ASM-28` — tất cả giữ mở. **Chọn Lựa chọn B cho `OQ-034`** (bất đồng bộ hoá bước khởi tạo thanh toán), yêu cầu SA viết `ADR-013` (`Proposed`) và sửa `SAD §6.1`/`FAIL §1.2` ở lượt kế tiếp; `OQ-034` chuyển "đã chọn hướng B, chờ `ADR-013` + Tech Lead/PO thật xác nhận", giữ mở). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Security/Ops chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-22` | | 1.21 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `adr`, phạm vi hẹp) | Thêm `DEC-23` (viết `ADR-013` — bất đồng bộ hoá bước khởi tạo thanh toán, hiện thực hoá Lựa chọn B của `OQ-034`/`DEC-22` — và sửa nhất quán tối thiểu `SAD §6.1`/`§8` lên v1.3 + `FAIL §1.2` lên v1.1). Không viết ADR khác, không sửa 12 ADR cũ. | `DEC-23` | | 1.22 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `dat`) | Thêm `DEC-24` (tiếp tục `sa-2-architecture` hoạt động 5 — `DAT` — cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…23`). `DAT_e-commerce_v1.0.md` tạo mới — bảng ownership `D7` cho toàn bộ 15 `CMP` (schema-per-module theo `ADR-006`, RDS Payment riêng theo `ADR-002`); mô hình `Order`/`OrderSeller`/`OrderItem` chi tiết theo `ADR-003`, bổ sung `order.payment_init_status` theo `ADR-013` và `cart_item.seller_name_snapshot`/`unit_price_snapshot` theo `ICD` (`OQ-033`); phân loại PII/Payment/nghiệp vụ + đề xuất retention (chờ Legal, `OQ-007`) và whitelist chia sẻ seller theo `ADR-008`; chiến lược đọc/ghi (index, read replica chỉ Catalog, đánh giá cache `Cart` cho `OQ-040`); đề xuất Transactional Outbox pattern cho khoảng trống `FAIL §7` (ADR ứng viên radar ~6, chưa viết — `OQ-044`) và idempotency store cho `POST /v1/checkout`; backup/PITR đối chiếu `QAS-008`/`ADR-009`; migration/versioning schema (đề xuất Flyway, `OQ-045`); dữ liệu đối soát (`ReconciliationLog`) và đề xuất ngưỡng job dọn `Order` kẹt cho `OQ-042`. Đối chiếu `docs/sections/05-thiet-ke-du-lieu.md` (P1) — phát hiện P2 thiếu `CMP` Audit & Compliance riêng (`OQ-047`). Thêm `OQ-043…047`, cập nhật `OQ-007/040/042`, `ASM-35…38`. Không sửa `SAD`/`ICD`/`FAIL`/`ADR`. `Confidence` 🔴 toàn bộ. | `DEC-24` | | 1.23 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-25` (duyệt từng phần `DAT_e-commerce_v1.0.md` v1.0: chấp nhận ownership 15 `CMP`, mô hình `Order`/`OrderSeller`/`Payment`, idempotency, backup/PITR; chấp nhận TẠM `ASM-35`, Transactional Outbox cho `OQ-044` (yêu cầu `ADR-014` ở lượt `adr` kế), phương án (a) audit cho `OQ-047`, ngưỡng job quét 5 phút cho `OQ-042`, polling cho `OQ-041` — cả bốn giữ mở; `OQ-045/046` không đổi. §5 PII/retention/whitelist CHƯA CÓ HIỆU LỰC, chờ Legal/Security (`OQ-007`)). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Security/Ops chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-25` | | 1.24 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-26` (review nội dung `adr/ADR-013_bat-dong-bo-hoa-khoi-tao-thanh-toan.md`: chấp nhận nội dung §3 làm cơ sở thiết kế tiếp; **KHÔNG** đề nghị `Accepted` — giữ `Proposed` vì chưa có chữ ký thật Tech Lead + PO và BA chưa viết `SRS`/`AC` US-004. Ghi dòng "Reviewed (Proposed giữ nguyên)" ở `ADR-013 §9`, cùng mẫu 12 ADR trước). Ký thay Tech Lead theo ngoại lệ `DEC-01`; `Confidence` 🔴; `AG2` chưa ký. | `DEC-26` | | 1.25 | 2026-09-15 | SA (qua skill sa-2-architecture, chế độ `go`, hoạt động `sec`) | Thêm `DEC-27` (tiếp tục `sa-2-architecture` hoạt động 6 — `SEC` — cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…26`). `SEC_e-commerce_v1.0.md` tạo mới — threat model STRIDE cho 8 ranh giới tin cậy (`THR-01…31`), mô hình authn (Guest/Customer/Seller/Admin + đề xuất mới service-to-service, `OQ-050`), mô hình authz (map đủ `ROLE-01/02` của `RBAC_CartCheckout`, fail-closed `E-CART-0007`), phân loại/mã hoá/masking PII (toàn bộ đánh dấu "đề xuất chờ Legal/Security", `OQ-007`), PCI-DSS SAQ A (xác nhận `ADR-002`, phát hiện khoảng trống xác nhận hình thức tích hợp redirect với đối tác — `OQ-048`), webhook signature/anti-replay (chưa có tài liệu đối tác, không bịa — `OQ-049`, `ARISK-03/04`), đề xuất số rate-limit Guest cart/checkout/login (`OQ-023` trả lời có số cụ thể, không tự quyết), secret management, audit log theo phương án (a) đã chốt (`OQ-047`), chuỗi cung ứng (scan/pentest/ASV). Đề xuất `FIT-29…33` cho GĐ3. Thêm `OQ-048…053`, cập nhật `OQ-007/023/024/047`, `ASM-39…41`. Không sửa `SAD`/`ICD`/`DAT`/`FAIL`/`ADR` đã có; không viết `ADR` mới (chỉ đề xuất 1 ứng viên — service-to-service authn — cho hoạt động `adr` kế tiếp). `Confidence` 🔴 toàn bộ. **Phát hiện quan trọng nhất:** Security **chưa có người** (`OQ-007`) — `SEC` chưa có hiệu lực phủ quyết AG2 cho bất kỳ nội dung nào của tài liệu này. | `DEC-27` | | 1.26 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-28` (duyệt từng phần `SEC_e-commerce_v1.0.md` v1.0: ghi nhận nội dung 31 `THR` STRIDE, map `ROLE-01/02`, mô hình authn/authz đề xuất, SAQ A, đề xuất rate limit **30/10/10 req/phút** (`ASM-40`), quản lý secret/scanning, audit log theo phương án (a). Chốt TẠM `OQ-050`: chọn **PA-3** (service JWT ngắn hạn ký bởi Identity & Access) cho service-to-service authn — yêu cầu SA viết `ADR-015` (`Proposed`) ở lượt hoạt động `adr` kế tiếp cùng `ADR-014`; `OQ-050` giữ nguyên mở, chờ Security + Ops/SRE. **KHÔNG ký thay Security**: header `Approved by → Security` giữ `—`, `SEC` chưa có hiệu lực phủ quyết AG2 (`OQ-007`); mọi kết luận PII/residency/retention (§5, §8.2) là đề xuất chờ Legal/Security). Ký thay Tech Lead theo ngoại lệ `DEC-01`; Ops/SRE chưa ký; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-28` | | 1.27 | 2026-09-15 | SA (qua skill `sa-2-architecture`, chế độ `go`, hoạt động `inf`) | Thêm `DEC-29` (tiếp tục `sa-2-architecture` hoạt động 7 — `INF` — cho e-commerce dù AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…28`). `INF_e-commerce_v1.0.md` tạo mới — topology AWS `ap-southeast-1` (VPC/2 AZ/subnet, ALB+WAF, 2 ECS Fargate Nhóm Giao dịch/Nhóm Hỗ trợ + Payment tách biệt, RDS chính Multi-AZ + RDS Payment, Redis, SQS FIFO+EventBridge+DLQ, S3/CloudFront, Secrets Manager/KMS, NAT), đối chiếu từng dòng với `TCO §3.2` (khớp toàn bộ trừ 1 điểm bản chất — cross-region snapshot Payment trong `TCO` vs "không multi-region" của `ADR-009`, ghi `OQ-054`, không tự sửa `TCO`/`ADR`); đề xuất split ECS task GD/HT (A: 2/2, B: 6/4, khớp tổng `TCO`, `OQ-055`); HA (auto-scaling A→B theo `QAS-009`, phát hiện SPOF ElastiCache kịch bản A không có replica, `OQ-058`); DR (RPO≤15’/RTO≤1h theo `QAS-008`/`ADR-009`, backup/PITR, **kế hoạch diễn tập DR 3 kịch bản** — mất AZ/mất RDS primary/mất Redis — kèm tiêu chí PASS/FAIL đo thật, đề xuất hạn trước AG2, `OQ-022`/`OQ-056` ngày thật chờ Ops/SRE); observability (alert ≤1 phút nhóm giao dịch cốt lõi theo `QAS-013`, DLQ 14 ngày + alert lag >5 phút theo `OQ-036`/`DEC-22`, error budget 43 phút/tháng loại trừ bảo trì ≤2h theo `OQ-020`, on-call theo `CON-08`+`OQ-008`); CI/CD (pipeline build→test→SAST→SCA(Trivy/Snyk)→migration→deploy, blue-green cho 3 service, migration schema Flyway theo `OQ-045`); network/SG + egress đối tác ngoài (`OQ-057` IP allowlist); giải quyết khoảng trống service discovery GD↔HT của `SAD §7`/`OQ-028` bằng AWS Cloud Map/ECS Service Connect (ghi `DEC` mức thấp, không `ADR`); IaC (đề xuất Terraform) + `FIT-34…38` ứng viên GĐ3. Đề xuất 2 `ADR` ứng viên mới cho hoạt động `adr` kế tiếp (`ADR-016` chiến lược triển khai blue-green, `ADR-017` công cụ IaC) — **không viết `ADR` ở lượt này**. Thêm `OQ-054…063`, `ASM-42…46`. Không sửa `SAD`/`ICD`/`DAT`/`SEC`/`FAIL`/`ADR` đã có. `Confidence` 🔴 toàn bộ. | `DEC-29` | | 1.28 | 2026-09-15 | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) — tác vụ sign | Thêm `DEC-30` (duyệt từng phần `INF_e-commerce_v1.0.md` v1.0: chấp nhận topology AWS `ap-southeast-1`, bảng đối chiếu `INF↔TCO` §10, HA/auto-scaling split ECS GD/HT A 2/2 – B 6/4 (`ASM-42`, `OQ-055` giữ mở), kế hoạch diễn tập DR 3 kịch bản (`OQ-022`/`OQ-056`, ngày thật chờ Ops/SRE — điều kiện AG2), observability, CI/CD blue-green (`ADR-016` ứng viên), network/egress, IaC Terraform (`ADR-017` ứng viên). Chốt TẠM `OQ-058`: giữ `TCO`, KHÔNG thêm replica Redis ở kịch bản A, chấp nhận SPOF với fail-closed theo `FAIL` — `OQ-058` giữ nguyên mở, chờ PO. Đồng ý viết `ADR-016`/`ADR-017` (`Proposed`) cùng `ADR-014`/`ADR-015` ở lượt `adr` kế tiếp. `OQ-054` giữ nguyên mở. **KHÔNG ký thay Ops/SRE**: header `Approved by → Ops/SRE` giữ `—`. Security chưa ký; Ký thay Tech Lead theo ngoại lệ `DEC-01`; `OQ-004` mở; `Confidence` giữ 🔴; Status giữ Draft; AG2 chưa ký. | `DEC-30` | | 1.29 | 2026-09-15 | SA (qua skill `sa-2-architecture`, chế độ `go`, hoạt động `adr`) | Thêm `DEC-31` (viết 4 `ADR` còn nợ cho e-commerce trong khi AG1 chưa ký thật và AG2 chưa tới hạn — tiếp nối `DEC-01…30`). Viết `ADR-014` (Transactional Outbox — hiện thực hoá hướng đã chọn TẠM ở `DAT §4.1`/`OQ-044`/`DEC-25`, radar 6/10), `ADR-015` (Service JWT ngắn hạn service-to-service — hiện thực hoá PA-3 đã chọn TẠM ở `SEC §2.4`/`OQ-050`/`DEC-28`, radar 5/10, **chặn cứng `Accepted` bởi `OQ-007` — Security chưa có người**), `ADR-016` (Blue-green qua AWS CodeDeploy cho 3 dịch vụ ECS — hiện thực hoá đề xuất `INF §7.2`/`DEC-30`, radar 6/10), `ADR-017` (IaC Terraform — hiện thực hoá đề xuất `INF §11`/`DEC-30`, radar 7/10) trong `02-architecture/adr/`. **Cả 4 ADR giữ Status `Proposed`** — không ADR nào `Accepted` (chưa có chữ ký thật Tech Lead/Security/Ops-SRE; không cái nào đạt radar ≥8 nên không bắt buộc POC, nhưng mỗi ADR đều ghi rõ điều kiện `Accepted` riêng ở §3). Link 4 `ADR` này vào `DAT_e-commerce_v1.0.md` (v1.1, §4.1), `SEC_e-commerce_v1.0.md` (v1.1, §2.4/§4 TB3-TB4), `INF_e-commerce_v1.0.md` (v1.1, §7.2/§11/§13) — **chỉ thay "ứng viên"/"chưa viết" bằng đường dẫn thật, không đổi nội dung chuyên môn khác** của ba tài liệu đó, mỗi file bump `+0.1` kèm Change Log "chỉ link ADR, không đổi nội dung". Cập nhật `ADL_e-commerce.md` (17 ADR, tất cả `Proposed`) và `DTM_e-commerce.md` (`ASR-004`/`ASR-005` → thêm `ADR-014`; `ASR-007` → thêm `ADR-015`; `QAS-007` → `ADR-016`; ghi nhận `ADR-017` không có `ASR`/`QAS` nguồn trực tiếp, hợp lệ vì gắn `CON-05`/`D9`). Không sửa 13 `ADR` cũ, không sửa nội dung `SAD`/`ASR`/`QAS`/`ICD`/`FAIL`. `Confidence` 🔴 toàn bộ 4 ADR mới. | `DEC-31`, `ADR-014…017` | --- ## Quyết định đã chốt (radar 3–4, không đủ tầm ADR) | ID | Quyết định | Người quyết | Ngày | Radar | Ảnh hưởng | |---|---|---|---|---|---| | DEC-01 (SA) | Chạy `sa-1-context` (hoạt động Driver) cho e-commerce trong khi BA chưa ký G1 chính thức (`BRIEF_CartCheckout` Draft, `OQ-001`/`OQ-007` BA mở) và không có gate SA nào trước GĐ1 để chờ — tham chiếu mô hình ngoại lệ `DEC-02..07` của bộ BA (dự án chạy thử). Toàn bộ `DRV` giữ `Confidence` 🔴 tới khi BA ký G1 thật. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~4 (chi phí đảo ngược thấp · toàn bộ GĐ1 SA · không chạm `QAS` cụ thể · không ràng buộc dài hạn · đã có tiền lệ) | `CTX_e-commerce_v1.0.md` (toàn bộ), `OQ-001`, `OQ-004` | | DEC-02 (SA) | Trả lời `OQ-002` (ràng buộc Con người chưa có thông tin số đội/số người/kỹ năng): dùng giả định mặc định "team MVP chuẩn" (quy mô/kỹ năng đội hình tối thiểu đủ vận hành một MVP, chưa xác nhận số thật) làm đầu vào tạm cho `CON` nhóm Con người ở Bước 2 của `sa-1-context`. `Confidence` của giả định này là 🔴; giả định thật (`ASM-nn`) sẽ được lập trong `CTX` §5/§3 khi Bước 2 chạy, và phải được thay bằng số thật khi PM/Tech Lead xác nhận (`OQ-002` đóng nhưng nội dung chưa "xác nhận", chỉ là "chọn giả định tạm để không nghẽn tiến độ"). | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~4–5 (ảnh hưởng ranh giới service GĐ2 nếu team thực tế khác đáng kể · chi phí đảo ngược trung bình nếu phải vẽ lại ranh giới domain · chưa chạm `QAS` cụ thể · có tiền lệ dùng giả định mặc định ở dự án chạy thử) | `CTX_e-commerce_v1.0.md` §7 `OQ-002`, Bước 2 (`CON`) sắp tới | | DEC-03 (SA) | Tiếp tục chạy `sa-1-context` Bước 2 (Ràng buộc — `CON-nn`, đủ 6 nhóm) và bổ sung `ASM-nn` cấp `CTX` cho dự án e-commerce trong khi BA **vẫn chưa** qua G1 chính thức và AG1 (gate của chính GĐ1 SA) vẫn chưa từng chạy — tiếp nối `DEC-01`. Người điều phối dự án đã được cảnh báo lại về việc gate trước chưa `✅ Baselined` và **tái khẳng định muốn tiếp tục**. Toàn bộ `CON`/`ASM` mới thêm giữ `Confidence` 🔴; phần lớn giá trị "Cứng/Mềm" của `CON` ghi "Chưa xác định" vì nguồn duy nhất là ước lượng hồ sơ thầu (`e-commerce/bid/`, Draft, chưa hợp đồng), không phải số PO đã duyệt. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~3–4 (chi phí đảo ngược thấp — chỉ là nội dung `CON`/`ASM`, sửa lại khi có số thật không tốn nhiều · bán kính ảnh hưởng: toàn bộ `OPT`/`TCO` ở các Bước 4–5 kế tiếp phụ thuộc vào `CON` này · chưa chạm `QAS` cụ thể · không ràng buộc dài hạn (là ngoại lệ tạm thời, tiếp nối tiền lệ `DEC-01`) · không tranh cãi mới, đã có tiền lệ) | `CTX_e-commerce_v1.0.md (v1.1 trong header)` §0, §3, `OQ-005`…`OQ-009` | | DEC-04 (SA) | (1) Tiếp tục chạy `sa-1-context` Bước 3 (Hiện trạng — AS-IS, §4) cho e-commerce trong khi BA **vẫn chưa** qua G1 và AG1 vẫn chưa từng chạy — tiếp nối `DEC-01`/`DEC-03`; người dùng tái khẳng định muốn tiếp tục. (2) Trả lời và đóng `OQ-009`: chấp nhận dùng `SAD.md` v0.2 (approved nội bộ nhà thầu, KHÔNG phải kiến trúc đang chạy) và hồ sơ thầu làm **điểm khởi đầu tham khảo** cho một phương án ở Bước 4 (`OPT`), với điều kiện bắt buộc Bước 4 vẫn phải dựng và chấm điểm ≥1 phương án độc lập khác — không mặc định `SAD.md` là phương án thắng sẵn (tránh bẫy "một phương án duy nhất", `GUIDE.md`). | Điều phối dự án (đại diện PO, dự án chạy thử) — riêng phần (2) là ghi chú điều phối, không phải PO/Tech Lead ký trực tiếp qua tác vụ `sign` | 2026-09-12 | ~3–4 cho (1) (giống `DEC-03`, ngoại lệ gate tạm thời, tiếp nối tiền lệ); ~4–5 cho (2) (ảnh hưởng cách tổ chức toàn bộ Bước 4 `OPT` · chi phí đảo ngược trung bình nếu phải bỏ neo `SAD.md` sau này và dựng lại từ đầu · chưa chạm `QAS` cụ thể · có điều kiện ràng buộc rõ ràng đi kèm (bắt buộc ≥1 phương án độc lập) nên giảm rủi ro thiên vị) | `CTX_e-commerce_v1.0.md (v1.2 trong header)` §0, §4, §7, §7.1, `OQ-009` (đóng) | | DEC-05 (SA) | Tiếp tục chạy `sa-1-context` Bước 4 (Phương án — `OPT`) cho e-commerce trong khi BA **vẫn chưa** qua G1 và AG1 vẫn chưa từng chạy — tiếp nối `DEC-01`/`DEC-03`/`DEC-04`; người dùng tái khẳng định muốn tiếp tục. `OPT_e-commerce_v1.0.md` tạo mới: 3 phương án chấm điểm (P0, P1 theo `SAD.md`/hồ sơ thầu, P2 modular monolith + managed AWS — đối trọng độc lập) + 2 phương án bị loại (P3 mua/tích hợp nền tảng sẵn có, P4 serverless-first); khuyến nghị P2 có điều kiện, chưa PO/Tech Lead ký. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~3–4 (chi phí đảo ngược thấp — nội dung `OPT` sửa lại khi có số thật không tốn nhiều · bán kính ảnh hưởng: quyết định kiến trúc GĐ2 phụ thuộc phương án chọn, nhưng việc ghi tài liệu dưới ngoại lệ thì nhỏ · chưa chạm `QAS` cụ thể (`QAS` chưa tồn tại) · không ràng buộc dài hạn (ngoại lệ tạm thời) · không tranh cãi mới, tiếp nối tiền lệ) | `OPT_e-commerce_v1.0.md` §0, `OQ-010…012` | | DEC-06 (SA) | PO (uỷ quyền, Điều phối dự án) duyệt **từng phần** `OPT_e-commerce_v1.0.md` bản v1.0: chấp nhận bộ tiêu chí và trọng số mặc định (đóng `ASM-09`), bảng chấm điểm, hai phương án bị loại (P3, P4), và khuyến nghị P2 có điều kiện. **Chọn P2** (modular monolith + managed AWS, tách riêng Payment Service) làm nền cho Bước 5 (`TCO`/`ARISK`) và GĐ2, với điều kiện: (1) `OQ-010` — Tech Lead xác nhận đội thi công thật (không phải đề xuất hồ sơ thầu); (2) POC đo throughput SQS/EventBridge (`ASM-07`) ghi vào `ARISK` kèm kế hoạch ở Bước 5, trước khi chốt `ADR` message backbone GĐ2 (`OQ-012`). Ký thay PO theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký PO/Tech Lead thật**; `OQ-004` giữ mở, Tech Lead chưa ký. `Confidence`/Status của `OPT` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG1 toàn phần. Đóng `OQ-011` bằng chính quyết định này. 🔴 **Lưu ý:** "kiểu kiến trúc tổng thể" là quyết định thuộc danh mục thường đạt ngưỡng `ADR` bắt buộc (`decision-radar.md §3`) — `DEC-06` chỉ ghi nhận **hướng đi tạm** để bắt đầu Bước 5/GĐ2 dưới ngoại lệ gate hiện có, **không thay thế** yêu cầu viết `ADR` chính thức khi GĐ2 (`sa-2-architecture`) chốt kiểu kiến trúc, và ADR đó vẫn phải qua đủ điều kiện `Accepted` (POC/bài đo nếu radar ≥ 8) độc lập với `DEC-06`. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~7 (chi phí đảo ngược cao hơn các `DEC` trước — đổi hướng kiến trúc tổng thể sau khi GĐ2 đã bắt đầu tốn > vài tuần · bán kính ảnh hưởng: toàn bộ GĐ2 (kiến trúc, ranh giới service, ADR) phụ thuộc trực tiếp · chưa chạm một `QAS` cụ thể đã tồn tại (GĐ1 chưa có `QAS`) nhưng ảnh hưởng gián tiếp toàn bộ chất lượng kiến trúc tương lai · ràng buộc trong khoảng GĐ2 cho tới khi có `ADR`/POC chính thức, không phải vĩnh viễn · chưa có tranh cãi mới — tiếp nối khuyến nghị SA). **Do thuộc danh mục "kiểu kiến trúc tổng thể" nên khuyến nghị nâng thành `ADR` chính thức ngay khi GĐ2 bắt đầu, không chỉ dừng ở `DEC-nn`** | `OPT_e-commerce_v1.0.md` (header, Change Log), `OQ-011` (đóng) | | DEC-07 (SA) | Tiếp tục chạy `sa-1-context` Bước 5 (phần `TCO`) cho e-commerce trong khi BA vẫn chưa qua G1 và AG1 vẫn chưa từng chạy — tiếp nối `DEC-01/03/04/05`. `TCO_e-commerce_v1.0.md` tạo mới: chi phí 3 năm cho P2 (chính) và P1 (đối chiếu) theo 2 kịch bản tải, đơn giá AWS/tỷ giá gắn `ASM-11/12` (cần xác minh), 5 khoản non-labor chưa tính được (`NL-03/04/05/07/08`) chuyển thành `OQ-014…017`. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~3–4 (giống `DEC-05`: chi phí đảo ngược thấp, chưa chạm `QAS` cụ thể, không ràng buộc dài hạn, tiếp nối tiền lệ) | `TCO_e-commerce_v1.0.md` (toàn bộ) | | DEC-08 (SA) | Tiếp tục chạy `sa-1-context` Bước 5 (phần `ARISK`) cho e-commerce — tiếp nối `DEC-01/03/04/05/07`. `ARISK_e-commerce_v1.0.md` tạo mới: 10 rủi ro (`ARISK-01…10`), 2 kế hoạch POC bắt buộc (`POC-01` throughput SQS/EventBridge, `POC-02` RDS gộp tải) với tiêu chí pass/fail suy từ `DRV-04`, phải chạy xong trước `ADR` message backbone GĐ2. GĐ1 SA nay đủ 4 artifact để audit AG1. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~3–4 (cùng lý lẽ `DEC-07`) | `ARISK_e-commerce_v1.0.md` (toàn bộ) | | DEC-09 (SA) | PO (uỷ quyền, Điều phối dự án) duyệt **từng phần** `TCO_e-commerce_v1.0.md` bản v1.1 (sau khi sửa lỗi chép số §1 P2-B: "Vận hành/nhân sự (3 năm)" P2-B = 5.600 triệu, Tổng 3 năm P2-B = 13.977,5 triệu): chấp nhận cấu trúc 4 nhóm chi phí (hạ tầng AWS/license/vận hành/xây dựng một lần), 2 kịch bản tải A/B, và kết luận thứ tự tương đối **P2 rẻ hơn P1** ở cả hai kịch bản. **Chưa xác nhận**: đơn giá AWS (`ASM-11`), tỷ giá (`ASM-12`), số FTE vận hành (`ASM-14`), 5 khoản non-labor (`OQ-013…017`) — `Confidence` giữ 🔴. Ký thay PO theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký PO/Tech Lead thật**; `OQ-004` giữ mở, Tech Lead chưa ký. `TCO` giữ Status 🟡 Draft — duyệt từng phần không phải AG1 toàn phần. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~3–4 (giống `DEC-07` — chi phí đảo ngược thấp, chưa chạm `QAS` cụ thể, không ràng buộc dài hạn, tiếp nối tiền lệ) | `TCO_e-commerce_v1.0.md` (header, Change Log) | | DEC-10 (SA) | PO (uỷ quyền, Điều phối dự án) duyệt **từng phần** `ARISK_e-commerce_v1.0.md` bản v1.0: chấp nhận 10 rủi ro `ARISK-01…10` (chủ + biện pháp) và kế hoạch `POC-01` (SQS/EventBridge throughput) + `POC-02` (RDS gộp tải) với tiêu chí PASS/FAIL viết trước ở §6. **POC chưa chạy** — bắt buộc chạy xong trước khi chốt `ADR` message backbone GĐ2. Ký thay PO theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký PO/Tech Lead thật**; `OQ-004` giữ mở, Tech Lead/PM chưa ký. `ARISK` giữ Status 🟡 Draft, `Confidence` 🔴 — duyệt từng phần không phải AG1 toàn phần. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-12 | ~3–4 (cùng lý lẽ `DEC-09`; POC chưa chạy nên chưa thể nâng radar cho quyết định kiến trúc liên quan) | `ARISK_e-commerce_v1.0.md` (header, Change Log) | | DEC-11 (SA) | Bắt đầu `sa-2-architecture` (hoạt động 1 — `QAS`) cho e-commerce dù AG1 (gate GĐ1 SA) chưa có chữ ký PO/Tech Lead thật (audit 2026-09-12: AG1 🟠 — 4 artifact GĐ1 duyệt từng phần bởi PO uỷ quyền, `Confidence` 🔴 toàn bộ; `POC-01`/`POC-02` chưa chạy; BA chưa ký G1 cho `BRIEF_CartCheckout`) — tiếp nối `DEC-01…10`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. Toàn bộ 14 `QAS` mới giữ `Confidence` 🔴 cho tới khi: (a) PO/Tech Lead ký AG1 thật; (b) `POC-01`/`POC-02` chạy xong; (c) các con số SA tự đề xuất (`QAS-003/004/007/014`) được PO/Tech Lead xác nhận qua `OQ-018…023`. Không tạo `ADR` riêng cho việc chạy dưới ngoại lệ (khác quyết định kiến trúc P2, vẫn cần `ADR` ở hoạt động `asr`/`adr` kế tiếp). | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-14 | ~4 (chi phí đảo ngược thấp — sửa `QAS` khi có số thật không tốn nhiều · bán kính ảnh hưởng: toàn bộ GĐ2 phụ thuộc `QAS` nhưng việc ghi tài liệu dưới ngoại lệ thì nhỏ · có chạm `QAS` Must trực tiếp (đang tạo chính nó) nhưng chưa phải quyết định kiến trúc đã cam kết · không ràng buộc dài hạn (ngoại lệ tạm thời) · không tranh cãi mới, tiếp nối tiền lệ) | `QAS_e-commerce_v1.0.md` (toàn bộ), `OQ-018…023` | | DEC-12 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `QAS_e-commerce_v1.0.md` bản v1.0: chấp nhận 14 `QAS-001…014` đủ 6 phần và cách đo (Phần A); chấp nhận **TẠM** các số SA tự đề xuất — `QAS-003` p95 ≤500ms, `QAS-004` p95 ≤300ms, `QAS-007` loại trừ bảo trì ≤2 giờ/tháng, `QAS-014` đối soát ≤15 phút — làm baseline tạm; **`OQ-018…021` giữ nguyên mở**, chờ PO/Tech Lead thật xác nhận số cuối cùng. Chốt thêm điều kiện mới: diễn tập DR (`QAS-008`) **phải thực hiện trước khi ký AG2** — cập nhật `OQ-022` thành điều kiện tiên quyết của AG2, cũng là input bắt buộc cho hoạt động `inf` khi tới lượt. Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; Security/Ops/SRE **chưa ký**; `OQ-004` giữ mở. `Confidence`/Status của `QAS` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-14 | ~4 (giống `DEC-11` — chi phí đảo ngược thấp (sửa số khi có PO/Tech Lead thật không tốn nhiều) · bán kính ảnh hưởng: toàn bộ GĐ2 phụ thuộc `QAS` này nhưng bản thân việc ký thay/duyệt từng phần thì nhỏ · có chạm `QAS` Must trực tiếp (chính các `QAS` đang được duyệt) nhưng chưa phải cam kết thi công · không ràng buộc dài hạn (điều kiện AG2 có thể điều chỉnh khi Ops/SRE xác nhận lịch thật) · không tranh cãi mới, tiếp nối tiền lệ `DEC-06/09/10`) | `QAS_e-commerce_v1.0.md` (header, Change Log), `OQ-022` (cập nhật, không đóng) | | DEC-13 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 2 — `ASR`) cho e-commerce dù AG1 chưa có chữ ký PO/Tech Lead thật và AG2 chưa tới hạn — tiếp nối `DEC-01…12`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. `ASR_e-commerce_v1.0.md` tạo mới — 15 `ASR` chưng cất từ `DRV`/`CON`/`QAS`/`BR-CART`/`ROLE`, mỗi cái có nguồn, "vì sao định hình kiến trúc", và `ADR` ứng viên (12/15 có ứng viên, radar ước lượng 4–9; `ADR-001` kiểu kiến trúc tổng thể P2 vẫn là nợ từ `DEC-06`, chưa viết). Thêm `OQ-024/025`, `ASM-19…21`. Không viết `ADR` nào ở lượt này. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-14 | ~4 (chi phí đảo ngược thấp — chưng cất từ tài liệu đã có, sửa lại không tốn nhiều nếu nguồn đổi · bán kính ảnh hưởng: toàn bộ hoạt động `sad`/`adr` kế tiếp phụ thuộc nhưng việc ghi tài liệu dưới ngoại lệ thì nhỏ · có chạm `QAS` Must trực tiếp (đang chưng cất từ chính các `QAS` Must) nhưng chưa phải quyết định kiến trúc đã cam kết · không ràng buộc dài hạn · không tranh cãi mới, tiếp nối tiền lệ `DEC-11/12`) | `ASR_e-commerce_v1.0.md` (toàn bộ), `OQ-024/025` | | DEC-14 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `ASR_e-commerce_v1.0.md` bản v1.0: chấp nhận 15 `ASR-001…015` (14 `Must` + 1 `Should`) đủ nguồn/"vì sao định hình kiến trúc" và danh sách 12 `ADR` ứng viên (`ADR-001…012`, §B2) với radar ước lượng đã ghi kèm. Xác nhận **`ADR-005`/`ADR-006`/`ADR-009`** (radar ước lượng ≥8) **chỉ được chuyển `Accepted`** sau khi `POC-01` (SQS/EventBridge), `POC-02` (RDS gộp tải), và diễn tập DR (Ops/SRE) chạy xong — đúng `decision-radar.md §2`/§6, không ký tắt qua bước đo. Chốt **TẠM** `OQ-024` (phương thức MFA Admin = TOTP app, theo `ASM-20`) và `OQ-025` (không dịch nội dung seller tự nhập ở MVP, chỉ i18n UI hệ thống, theo `ASM-21`) làm hướng đi tạm cho `sad`/`sec` kế tiếp — **`OQ-024`/`OQ-025` giữ nguyên MỞ**, chờ Security/PO thật xác nhận, không coi là đã đóng. Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; Security/Ops/SRE **chưa ký**; `OQ-004` giữ mở. `Confidence`/Status của `ASR` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~4 (giống `DEC-12` — chi phí đảo ngược thấp (sửa `ASR`/`ADR` ứng viên khi có PO/Tech Lead thật không tốn nhiều) · bán kính ảnh hưởng: toàn bộ hoạt động `sad`/`adr` kế tiếp phụ thuộc danh sách này nhưng bản thân việc ký thay/duyệt từng phần thì nhỏ · có chạm `QAS` Must trực tiếp (chính các `ASR` đang được duyệt, chưng cất từ `QAS` Must) nhưng chưa phải cam kết thi công (chưa có `ADR` nào `Accepted`) · không ràng buộc dài hạn (các `ADR` ứng viên vẫn `Proposed`, chưa `Accepted`) · không tranh cãi mới, tiếp nối tiền lệ `DEC-06/09/10/12`) | `ASR_e-commerce_v1.0.md` (header, Change Log), `OQ-024/025` (cập nhật, không đóng) | | DEC-15 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 3 — `SAD`) cho e-commerce dù AG1 chưa có chữ ký PO/Tech Lead thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…14`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. `SAD_e-commerce_v1.0.md` tạo mới — C4 Context (4 actor + 5 hệ ngoài), C4 Container (Mermaid, legend theo `D4`), C4 Component cho container "Nhóm Giao dịch" (Cart & Order), 2 sequence diagram (checkout, webhook+đối soát), deployment view AWS `ap-southeast-1` đối chiếu `TCO §3.2` (phát hiện 1 điểm lệch mức chi tiết giữa ranh giới 2 nhóm triển khai của `ASR-001`/`ASR-014` và cách `TCO` tính gộp compute — ghi `OQ-026`, không tự đổi số `TCO`), bảng `CMP-01…15` (ma trận `ASR-001…015` × `CMP` đủ 15/15, không `CMP` mồ côi), 22 `IF-nn` ứng viên cho `ICD` (hoạt động 4), thực thể dữ liệu sở hữu ứng viên cho `DAT` (hoạt động 5), phụ thuộc vượt ranh giới process ứng viên cho `FAIL` (hoạt động 8). Đánh dấu 12 chỗ chờ `ADR-001…012` (không viết `ADR` nào). Thêm `OQ-026/027` (khớp số ECS Fargate với `TCO`; vị trí nhóm triển khai của Identity & Access), `ASM-22/23`. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — bản vẽ C4 sửa lại khi `ADR-001` đổi hướng không tốn nhiều so với đã code · bán kính ảnh hưởng: hoạt động `icd`/`dat`/`sec`/`inf`/`fail` kế tiếp phụ thuộc `SAD` này nhưng việc ghi tài liệu dưới ngoại lệ thì nhỏ · có chạm `QAS`/`ASR` Must trực tiếp (đang hiện thực hoá thành component) nhưng chưa phải cam kết thi công (chưa `ADR` nào `Accepted`) · không ràng buộc dài hạn tự thân (văn bản sửa được qua version mới, khác `ADR` bất biến) · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…14`) | `SAD_e-commerce_v1.0.md` (toàn bộ), `OQ-026/027` | | DEC-16 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `SAD_e-commerce_v1.0.md` bản v1.0: chấp nhận C4 Context/Container/Component (Cart & Order), deployment view, bảng `CMP-01…15` và ma trận `ASR-001…015` × `CMP` đủ 15/15 (không `CMP` mồ côi), 22 `IF-nn` ứng viên cho `ICD`, và 12 chỗ chờ `ADR-001…012` (kế thừa nguyên trạng từ `ASR §B2`/`DEC-14`, không đổi radar). Chốt **TẠM** `OQ-026` (P2 có 2 ECS Fargate service riêng — Nhóm Giao dịch/Nhóm Hỗ trợ — để scale độc lập, `TCO §3.2` giữ nguyên tới khi hoạt động `inf` xác nhận, theo `ASM-23`) và `OQ-027` (Identity & Access thuộc Nhóm Giao dịch, theo `ASM-22`) làm hướng đi tạm cho `icd`/`dat`/`sec`/`inf`/`fail` kế tiếp — **`OQ-026`/`OQ-027` giữ nguyên MỞ**, chờ Tech Lead/Ops thật xác nhận, không coi là đã đóng. Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; Security/Ops/SRE **chưa ký**; `OQ-004` giữ mở. `Confidence`/Status của `SAD` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~4 (giống `DEC-12`/`DEC-14` — chi phí đảo ngược thấp (sửa `SAD`/`CMP` khi có PO/Tech Lead thật không tốn nhiều) · bán kính ảnh hưởng: toàn bộ hoạt động `icd`/`dat`/`sec`/`inf`/`fail`/`adr` kế tiếp phụ thuộc `SAD` này nhưng bản thân việc ký thay/duyệt từng phần thì nhỏ · có chạm `QAS`/`ASR` Must trực tiếp (đang hiện thực hoá thành component) nhưng chưa phải cam kết thi công (chưa `ADR` nào `Accepted`) · không ràng buộc dài hạn (deployment view sửa được qua version mới, khác `ADR` bất biến) · không tranh cãi mới, tiếp nối tiền lệ `DEC-06/09/10/12/14`) | `SAD_e-commerce_v1.0.md` (header, Change Log), `OQ-026/027` (cập nhật, không đóng) | | DEC-17 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 9 — `adr`) cho e-commerce trong khi AG1 chưa có chữ ký PO/Tech Lead thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…16`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. Viết đủ `ADR-001…012` trong `02-architecture/adr/`, mỗi ADR có Bối cảnh (truy về `ASR`/`QAS`/`DRV`/`CON` nguồn), Phương án đã cân nhắc (≥2, có phương án bị loại + lý do gắn `CON`/`QAS`), Quyết định, Hệ quả (tích cực/tiêu cực/nợ kỹ thuật), Radar (điểm + căn cứ), Điều kiện chuyển `Accepted`, Cách kiểm chứng (`FIT` ứng viên cho GĐ3), Supersedes/Related. **Tất cả 12 ADR giữ Status `Proposed`** — không ADR nào `Accepted` vì chưa có chữ ký thật (Tech Lead + Security + Ops/SRE); `ADR-005`/`ADR-006`/`ADR-009` (radar ≥8) ghi rõ điều kiện `Accepted` là `POC-01`/`POC-02`/diễn tập DR PASS (đúng `decision-radar.md §2`/§6); `ADR-008` (PII) ghi phủ quyết Security/Legal, chặn hoàn toàn tới khi PO chỉ định người (`OQ-007`). Cập nhật `ADL_e-commerce.md` (mục lục 12 ADR, radar, nguồn, `ASR` phục vụ; `DEC-06` được ghi nhận là đã trả nợ). Cập nhật `SAD_e-commerce_v1.0.md` §8 lên v1.1 (chỉ thay cột "chưa viết" bằng link file ADR thật, không đổi nội dung chuyên môn khác của `SAD`). Không sửa `ASR`/`QAS` đã duyệt từng phần. `Confidence` 🔴 toàn bộ 12 ADR (chưa ai ký thật). | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — *việc ghi 12 ADR dưới ngoại lệ gate* thì sửa lại không tốn nhiều khi có chữ ký thật, khác với *nội dung từng ADR* vốn đã được chấm radar riêng biệt trong từng file (6–9) · bán kính ảnh hưởng: AG2 phụ thuộc trực tiếp 12 ADR này nhưng bản thân hành vi "chạy dưới ngoại lệ" thì nhỏ · có chạm `QAS`/`ASR` Must trực tiếp (đang hình thức hoá quyết định) nhưng chưa cam kết thi công (không ADR nào `Accepted`) · không ràng buộc dài hạn tự thân (ADR giữ `Proposed`, chưa bất biến) · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…16`) → **ghi `DEC-nn` cho việc chạy dưới ngoại lệ, không cần thêm `ADR` cho chính hành vi này** (`decision-radar.md §1–§2`) — tách biệt với 12 `ADR` nội dung đã viết. **Hệ quả nếu không chấp nhận ngoại lệ:** dừng GĐ2 ở hoạt động `sad`, không có `ADR` chính thức nào cho 12 quyết định đã đạt ngưỡng radar 5–7/8–9 — AG2 không thể tự chấm mục "`ADR-nnn` tồn tại cho mọi quyết định đạt ngưỡng radar", và `DEC-06` (GĐ1) tiếp tục treo như một khoản nợ chưa trả. | `ADR-001…012` (toàn bộ), `ADL_e-commerce.md`, `SAD_e-commerce_v1.0.md §8` (v1.1) | | DEC-18 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 4 — `ICD`) cho e-commerce trong khi AG1 chưa có chữ ký PO/Tech Lead thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…17`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. `ICD_e-commerce_v1.0.md` tạo mới — catalog cho 17/17 `IF-nn` truy được từ `SAD §4` (chênh lệch với con số "22" của `SAD` được ghi nhận ở `OQ-029`, không bịa thêm 5 ID); chi tiết đầy đủ cho `IF-002` (4 endpoint Cart & Checkout: `GET`/`PATCH`/`DELETE /v1/cart*`, `POST /v1/checkout`), `IF-005/006/007/008/009/015/021/022`. Xác nhận/điều chỉnh toàn bộ `API_US002-003_v1.0.md` của BA tại §5 (6 xác nhận, 3 điều chỉnh có lý do gắn `QAS-003`/`ADR-003`, 1 chờ `OQ-030(BA)`) — đóng đề xuất cho `OQ-034(BA)`/`OQ-032(BA)` (BA cần tự cập nhật sổ để đóng chính thức). Thêm `OQ-028…033`, `ASM-24…26`. Không sửa `SAD`/`ASR`/`QAS`/`ADR` đã có. `Confidence` 🔴 toàn bộ. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — contract catalog sửa lại khi có Tech Lead thật không tốn nhiều, chưa có dòng code nào phụ thuộc · bán kính ảnh hưởng: hoạt động `dat`/`sec`/`inf`/`fail` kế tiếp và toàn bộ dev BE/FE dùng `ICD` làm nguồn sự thật, nhưng bản thân việc ghi tài liệu dưới ngoại lệ thì nhỏ · có chạm trực tiếp việc xác nhận `API` của BA (đúng vai trò `ICD` phải làm) nhưng chưa phải cam kết thi công (chưa ai ký) · không ràng buộc dài hạn tự thân (ICD sửa được qua version mới) · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…17`) → **ghi `DEC-nn`, không cần `ADR` cho việc chạy dưới ngoại lệ**. **Hệ quả nếu không chấp nhận ngoại lệ:** BA không có ai xác nhận chính thức 3 endpoint Cart đang ở trạng thái "chờ BE" — SRS/API của BA tiếp tục treo `OQ-030/032/033/034(BA)`, chặn G3 của bộ BA. | `ICD_e-commerce_v1.0.md` (toàn bộ), `OQ-028…033` | | DEC-19 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `ICD_e-commerce_v1.0.md` bản v1.0: chấp nhận catalog 17 `IF-nn` (§2), chi tiết đầy đủ `IF-002` (4 endpoint Cart & Checkout, §3.1), và kết luận xác nhận/điều chỉnh `API_US002-003_v1.0.md` của BA tại §5 (nhóm `GET /v1/cart` theo seller; `sellerName` denormalize snapshot thay vì join runtime; thêm `unitPriceSnapshotVnd`/`currentPriceVnd`/`priceChanged`; Guest ownership dùng cùng cơ chế `403 ERR_FORBIDDEN_OWNERSHIP` theo `ADR-007`). Chấp nhận **TẠM** `ASM-24` (`IF-021` là cross-network, không in-process), `ASM-25` (chiều gọi `IF-022` là Cart&Order → Seller Management), `ASM-26` (Payment Service nhận `sellerId` ngay tại `IF-006`), và hướng denormalize `sellerName` đề xuất ở `OQ-033` làm baseline cho hoạt động `dat`/`sec`/`inf`/`fail` kế tiếp — **`OQ-028…033` (SA) giữ nguyên MỞ**, chờ Tech Lead thật xác nhận, không coi là đã đóng. Ghi nhận: 5 interface đối tác ngoài (VNPay/Momo/GHN/GHTK) và Email/SMS Provider **chưa có contract thật** (🔴, `ARISK-03/04`) — không thay đổi bởi lượt duyệt này. Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; Security/Ops/SRE **chưa ký**; `OQ-004` giữ mở. `Confidence`/Status của `ICD` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. Nhắc BA chạy `ba-pipeline` hoạt động `specification` để cập nhật `API_US002-003`/`SRS_US002-003` theo `ICD §5`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~4 (giống `DEC-12/14/16` — chi phí đảo ngược thấp (sửa `ICD` khi có Tech Lead thật không tốn nhiều) · bán kính ảnh hưởng: toàn bộ hoạt động `dat`/`sec`/`inf`/`fail` kế tiếp và dev BE/FE phụ thuộc `ICD` này nhưng bản thân việc ký thay/duyệt từng phần thì nhỏ · có chạm trực tiếp việc xác nhận `API` của BA (đã làm) nhưng chưa phải cam kết thi công (chưa ai ký thật) · không ràng buộc dài hạn (contract sửa được qua version mới) · không tranh cãi mới, tiếp nối tiền lệ `DEC-06/09/10/12/14/16`) | `ICD_e-commerce_v1.0.md` (header, Change Log), `OQ-028…033` (cập nhật, không đóng) | | DEC-20 (SA) | Tiếp tục ngoại lệ gate cho e-commerce (AG1 chưa ký thật, AG2 chưa tới hạn) — tiếp nối `DEC-01…19` — để **sửa lỗi nhất quán** trong `SAD_e-commerce_v1.0.md` (lên v1.2) theo phát hiện của hoạt động `icd` (`OQ-028` mâu thuẫn in-process/cross-network của `IF-021`; `OQ-029` chênh lệch "22 vs 17" `IF-nn`), theo yêu cầu người duyệt 2026-09-15. Đây là **sửa lỗi tài liệu**, không phải quyết định kiến trúc mới — không cần `ADR`, không đổi `CMP`. Kết luận: (1) `IF-021`/`IF-022` (Cart&Order ↔ Promotion&Loyalty/Seller Management) là cross-network REST giữa 2 ECS Fargate service riêng (Nhóm Giao dịch/Nhóm Hỗ trợ), không phải in-process — sửa thống nhất ở legend §4, footnote §4.1, §5, bảng §6.1/§6.3, bổ sung cạnh mạng còn thiếu ở §7 (đánh dấu 🔴 chờ `inf` thiết kế đường kết nối thật); `IF-005` (in-process, cùng Nhóm Giao dịch) và `IF-006` (cross-network, Payment) không đổi. (2) "22 `IF-nn`" là đếm nhầm ở bản gốc — đúng 17 ID (`IF-001…009, 015…022`), không bỏ sót interface nào — sửa "22"→"17" ở header/Change Log/Tự chấm của `SAD`. Đóng `OQ-029` trong sổ `00-index/OQ_e-commerce.md` (SA); `OQ-028` giữ nguyên mở (chờ Tech Lead thật xác nhận ranh giới mạng, dù `SAD` nay đã hết mâu thuẫn nội bộ). Không sửa §8 (`ADR` links), không sửa `ASR`/`QAS`/`ADR`/`ICD`. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~3 (chi phí đảo ngược rất thấp — thuần sửa lỗi mô tả/đếm số, không đổi cấu trúc `CMP`/quyết định kiến trúc · bán kính ảnh hưởng: làm rõ cho hoạt động `fail`/`inf` kế tiếp (mức ưu tiên `IF-021` cross-network) nhưng bản thân việc sửa lỗi thì nhỏ · không chạm `QAS`/`ASR` Must nào mới, chỉ làm nhất quán nội dung đã có · không ràng buộc dài hạn (sửa lỗi văn bản) · không tranh cãi — là sửa lỗi khách quan (đối chiếu sơ đồ với bảng), có tiền lệ `DEC-11…19`) | `SAD_e-commerce_v1.0.md` (v1.2), `OQ-029` (đóng), `OQ-028` (không đóng, ghi nhận SAD hết mâu thuẫn nội bộ) | | DEC-21 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 8 — `FAIL`) cho e-commerce dù AG1 chưa ký thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…20`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. `FAIL_e-commerce_v1.0.md` tạo mới — 13 phụ thuộc vượt ranh giới process theo `SAD` v1.2 §6.3 (VNPay, Momo, GHN, GHTK, Email/SMS, RDS chính, RDS Payment, Redis, SQS FIFO, EventBridge, `IF-006`, `IF-021` ưu tiên cao nhất, `IF-022`), mỗi cái đủ timeout/retry/idempotent/hết-retry-thì-sao và 4 câu hỏi `D6`. Dựng bảng ngân sách timeout cộng dồn đường găng checkout và **phát hiện xung đột**: timeout VNPay/Momo kế thừa 10s không dùng được nguyên trạng trong nhánh đồng bộ `IF-006`→`IF-007/008` vì một mình nó đã vượt `QAS-002` (≤3.000ms); ngay cả khi siết xuống 1.500ms, tổng cộng dồn vẫn vượt ngân sách ~7% (3.220ms) — trình 2 lựa chọn (siết thêm timeout vs bất đồng bộ hoá bước khởi tạo thanh toán) kèm hệ quả bằng số, không tự quyết (`OQ-034`). Thiết kế circuit breaker/backoff/bulkhead toàn hệ thống; suy giảm có kiểm soát (Promotion lỗi — đề xuất mặc định "bỏ qua, tiếp tục" nhưng không tự quyết, nối `OQ-017` của BA; COD khi VNPay/Momo lỗi; GHN↔GHTK fallback chéo theo `ASR-013`; phát hiện thiếu cache nội dung giỏ hàng thật cho fallback khi RDS chậm); 6 kịch bản hỏng toàn hệ thống; dữ liệu trong lúc lỗi; ánh xạ mã lỗi theo `AC_US-002/003`/`ICD §1` (3 mã lỗi mới đề xuất cho US-004 Checkout, chưa có trong `SRS` của BA); đề xuất `FIT-16…22` (chaos test/kill dependency) cho GĐ3. Thêm `OQ-034…040`, `ASM-27…33`. Không sửa `SAD`/`ICD`/`ADR` đã có. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — số cấu hình timeout/retry/circuit breaker sửa được qua config, không phải viết lại kiến trúc; các quyết định kiến trúc nền đã có `ADR-004/005/007/009/011` riêng · bán kính ảnh hưởng: toàn bộ luồng checkout + mọi consumer message backbone, nhưng bản thân việc ghi tài liệu dưới ngoại lệ thì nhỏ · có chạm `QAS-002` Must trực tiếp (phát hiện xung đột ngân sách) nhưng chưa phải cam kết thi công (chưa ai ký) · không ràng buộc dài hạn tự thân · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…20`) → **ghi `DEC-nn`, không cần `ADR` mới cho việc chạy dưới ngoại lệ**. **Hệ quả nếu không chấp nhận ngoại lệ:** AG2 thiếu tiêu chí "mỗi phụ thuộc ra ngoài process có failure mode, timeout, retry, fallback" — Dev tự chọn timeout/retry lúc code, không ai biết tổng thể hệ thống hỏng thế nào. | `FAIL_e-commerce_v1.0.md` (toàn bộ), `OQ-034…040` | | DEC-22 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `FAIL_e-commerce_v1.0.md` bản v1.0: chấp nhận bảng 13 phụ thuộc (`FM-01…13`) đủ timeout/retry/idempotency/fallback, bảng mã lỗi §5, đề xuất `FIT-16…22` (GĐ3). Chấp nhận **TẠM** (🔴) các ngưỡng SA đề xuất — circuit breaker §3.1 (`OQ-035`), DLQ retention 14 ngày + ngưỡng cảnh báo lag hàng đợi >5 phút (`OQ-036`), bulkhead pool chờ `POC-02` (`OQ-037`), timeout RDS/Redis (`ASM-27`/`ASM-28`) — tất cả **giữ nguyên MỞ**, chờ Tech Lead/SRE thật xác nhận, không coi là đã đóng. **Quyết định `OQ-034`** (xung đột ngân sách timeout đường găng checkout, `FAIL §1.2`): chọn **Lựa chọn B** — bất đồng bộ hoá bước khởi tạo thanh toán (tạo `Order` trạng thái `PENDING_PAYMENT_INIT`, trả response trong ngân sách ~1.670ms, gọi VNPay/Momo sau response) để đảm bảo `QAS-002` (≤3.000ms) không phụ thuộc SLA bên thứ ba — thay vì Lựa chọn A (siết timeout hơn nữa, chấp nhận rủi ro tăng tỷ lệ lỗi init khi đối tác thật chậm). Yêu cầu SA (lượt kế tiếp): viết `ADR-013` (`Proposed`, `Supersedes` một phần sequence diagram `SAD §6.1`) và sửa nhất quán `SAD §6.1` + `FAIL §1.2` theo hướng B — **chưa thực hiện ở lượt sign này** (đúng nguyên tắc chỉ sửa header/Change Log/INDEX khi `sign`, không đổi nội dung chuyên môn). `OQ-034` cập nhật trạng thái "đã chọn hướng B, chờ `ADR-013` + Tech Lead/PO thật xác nhận" — **giữ nguyên MỞ**, không đóng (chưa có `ADR-013` thật, chưa Tech Lead/PO xác nhận chính thức). Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; Security/Ops/SRE **chưa ký**; `OQ-004` giữ mở. `Confidence`/Status của `FAIL` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~5 (chi phí đảo ngược trung bình — cao hơn các `DEC` sign trước của `FAIL` vì đây không chỉ là chấp nhận TẠM số cấu hình mà là **chọn hướng kiến trúc** (bất đồng bộ hoá bước khởi tạo thanh toán) ảnh hưởng sequence diagram `SAD §6.1` đã duyệt từng phần và cần thiết kế lại UX checkout (FE thêm bước chờ/poll `paymentRedirectUrl`) · bán kính ảnh hưởng: toàn bộ luồng checkout (`IF-006`/`IF-007`/`IF-008`) + FE + `ADR-013` mới · có chạm `QAS-002` Must trực tiếp (chính là lý do chọn B) nhưng `ADR-013` chưa viết nên chưa `Accepted`, chưa cam kết thi công · ràng buộc trung hạn (tới khi `ADR-013` viết xong và Tech Lead/PO thật xác nhận) · không tranh cãi mới về mặt lập luận kỹ thuật (SA đã khuyến nghị B ở §1.2) nhưng là quyết định hướng đầu tiên trong chuỗi `DEC` của `FAIL`, tiếp nối tiền lệ `DEC-12/14/16/19`) | `FAIL_e-commerce_v1.0.md` (header, Change Log), `OQ-034` (cập nhật, không đóng), `OQ-035/036/037` (cập nhật, không đóng) | | DEC-23 (SA) | Tiếp tục `sa-2-architecture` (hoạt động `adr`, phạm vi hẹp — chỉ `ADR-013` + sửa nhất quán tối thiểu) cho e-commerce dù AG1 chưa ký thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…22`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. Viết `adr/ADR-013_bat-dong-bo-hoa-khoi-tao-thanh-toan.md` (`Proposed`, radar 7/10) hiện thực hoá đầy đủ Lựa chọn B đã chọn ở `OQ-034`/`DEC-22`: mô tả state machine `Order` (`PENDING_PAYMENT_INIT`→`PAYMENT_INIT_READY`/`PAYMENT_INIT_FAILED`), cơ chế trigger async qua message `PaymentInitRequested` (tái dùng `ADR-005`), idempotency (tái dùng `ADR-004`), hành vi khi init thất bại (thử lại/chuyển COD); nêu đủ 3 phương án (A siết timeout — loại, B — chọn, C giữ đồng bộ chấp nhận vượt `QAS-002` — loại vì vi phạm `D10`); hệ quả tích cực/tiêu cực, việc phát sinh (BA viết `SRS`/`AC` US-004, `ICD` lượt sau chốt endpoint polling/retry/chuyển COD). Sửa nhất quán tối thiểu: `SAD_e-commerce_v1.0.md` lên v1.3 (§6.1 sequence diagram chèn nhánh rẽ COD/online + bất đồng bộ, §8 thêm dòng `ADR-013`) và `FAIL_e-commerce_v1.0.md` lên v1.1 (§1.2 tách đường găng đồng bộ bước 1–6+COD/10 khỏi bước khởi tạo VNPay/Momo bất đồng bộ, kết quả tổng đồng bộ ≤3.000ms cho cả hai nhánh). Không sửa nội dung khác của `SAD`/`FAIL`, không viết ADR nào khác, không sửa 12 ADR cũ (`ADR-001…012`). `OQ-034` cập nhật "đã chọn hướng B, đã có `ADR-013`, chờ Tech Lead + PO thật xác nhận" — giữ mở. Thêm `OQ-041`/`OQ-042` (cơ chế FE polling/SSE; thời gian giữ `Order` chờ init trước khi coi là kẹt). Cập nhật `ADL_e-commerce.md` (thêm `ADR-013 Proposed`) và `DTM_e-commerce.md` (`ASR-004`/`QAS-002` → `ADR-013`). `Confidence` 🔴 toàn bộ. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp cho *việc ghi tài liệu dưới ngoại lệ* — khác điểm radar 7/10 của chính nội dung `ADR-013` đã chấm riêng trong file đó · bán kính ảnh hưởng: `SAD`/`FAIL` đã tồn tại, chỉ sửa đúng 2 mục theo yêu cầu người duyệt, không viết lại toàn bộ · chạm `QAS-002` Must gián tiếp (đang sửa cách đạt nó, không hạ chuẩn) · không ràng buộc dài hạn tự thân (khác `ADR-013`) · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…22`) → **ghi `DEC-nn` cho việc chạy dưới ngoại lệ, không cần `ADR` riêng** — tách biệt với `ADR-013` (nội dung, đã chấm radar riêng). **Hệ quả nếu không chấp nhận ngoại lệ:** `OQ-034` tiếp tục treo ở "đã chọn B nhưng chưa có ADR", Dev không có tài liệu chính thức để thi công lại luồng checkout, `SAD`/`FAIL` tiếp tục mô tả một luồng đã biết vượt ngân sách `QAS-002`. | `ADR-013` (mới), `SAD_e-commerce_v1.0.md` (v1.3), `FAIL_e-commerce_v1.0.md` (v1.1), `OQ-034` (cập nhật, không đóng), `OQ-041/042` (mới) | | DEC-24 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 5 — `DAT`) cho e-commerce dù AG1 chưa ký thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…23`. `DAT_e-commerce_v1.0.md` tạo mới — bảng ownership `D7` cho toàn bộ 15 `CMP`, mô hình `Order`/`OrderSeller`/`OrderItem` chi tiết theo `ADR-003`/`ADR-013`, phân loại PII/Payment/nghiệp vụ + đề xuất retention (chờ Legal, `OQ-007`) và whitelist chia sẻ seller theo `ADR-008`, chiến lược đọc/ghi/consistency/idempotency, đề xuất Transactional Outbox (ADR ứng viên, chưa viết — `OQ-044`), backup/PITR, migration/versioning, dữ liệu đối soát và job dọn `Order` kẹt. Đối chiếu `docs/05` P1 — phát hiện thiếu `CMP` Audit & Compliance (`OQ-047`). Thêm `OQ-043…047`, cập nhật `OQ-007/040/042`, `ASM-35…38`. Không sửa `SAD`/`ICD`/`FAIL`/`ADR`. `Confidence` 🔴 toàn bộ. *(Ghi bổ sung: dòng này bị thiếu ở lượt chạy trước, bổ sung lại khi sign `DEC-25` để không đứt mạch — không đổi nội dung `DAT` đã ghi.)* | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (giống `DEC-21` — chi phí đảo ngược thấp, ghi tài liệu thiết kế chưa có dòng code phụ thuộc · bán kính ảnh hưởng: `sec`/`inf` kế tiếp và dev BE dùng `DAT` làm nguồn sự thật ownership · có chạm `QAS-003/004/006/008/011/014` Must trực tiếp nhưng chưa phải cam kết thi công · không ràng buộc dài hạn tự thân · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…23`) | `DAT_e-commerce_v1.0.md` (toàn bộ), `OQ-043…047` | | DEC-25 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `DAT_e-commerce_v1.0.md` bản v1.0: chấp nhận bảng ownership 15 `CMP` (§1), mô hình `Order`/`OrderSeller`/`OrderItem` + `payment_init_status` (`ADR-013`, §2), snapshot giá/`sellerName`, idempotency store cho `POST /v1/checkout` (§4.2), PITR RPO ≤15 phút (§9). Chấp nhận **TẠM** (🔴): `ASM-35` (1 `Order` = 1 `Payment`) — `OQ-043` **giữ nguyên MỞ**; chọn **Transactional Outbox** (không phải job quét PA-1) cho khoảng trống `FAIL §7` — yêu cầu SA viết `ADR-014` (`Proposed`) ở lượt hoạt động `adr` kế tiếp, `OQ-044` **giữ MỞ** tới khi có ADR; chọn phương án (a) — mỗi module tự ghi `audit_log` riêng trong schema của mình cho `OQ-047`, **không thêm `CMP-16`** Audit tập trung; ngưỡng job quét `Order` kẹt ở `PENDING_PAYMENT_INIT` **5 phút** cho `OQ-042`; cơ chế FE lấy `redirectUrl` là **polling** cho `OQ-041` — cả bốn `OQ-041/042/044/047` **giữ nguyên MỞ**, chờ Tech Lead thật xác nhận, không coi là đã đóng. `OQ-045` (Flyway/Liquibase) và `OQ-046` (routing read replica) **giữ nguyên MỞ**, không có hướng TẠM nào được chốt. **§5 (phân loại PII/retention/whitelist chia sẻ seller) CHƯA CÓ HIỆU LỰC** — nằm ngoài phạm vi duyệt lần này, chờ đại diện Pháp chế/Bảo mật phủ quyết (`OQ-007`). Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; Security/Ops/SRE **chưa ký**; `OQ-004` giữ mở. `Confidence`/Status của `DAT` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~4 (giống `DEC-12/14/16/19` — chi phí đảo ngược thấp (sửa `DAT` khi có Tech Lead/DBA thật không tốn nhiều, chưa có dòng migration nào chạy) · bán kính ảnh hưởng: toàn bộ hoạt động `sec`/`inf` kế tiếp và dev BE dùng `DAT` làm nguồn sự thật ownership, nhưng bản thân việc ký thay/duyệt từng phần thì nhỏ · có chạm `QAS-003/004/006/008/011/014` Must trực tiếp (đang duyệt cách hiện thực hoá) nhưng chưa phải cam kết thi công (idempotency/outbox chưa viết `ADR`/code) · không ràng buộc dài hạn tự thân (văn bản `DAT` sửa được qua version mới) · không tranh cãi mới, tiếp nối tiền lệ `DEC-06/09/10/12/14/16/19/22`) | `DAT_e-commerce_v1.0.md` (header, Change Log), `OQ-041/042/044/047` (cập nhật, không đóng) | | DEC-26 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) **review nội dung** `adr/ADR-013_bat-dong-bo-hoa-khoi-tao-thanh-toan.md`: chấp nhận nội dung §3 (state machine `PENDING_PAYMENT_INIT`/`PAYMENT_INIT_READY`/`PAYMENT_INIT_FAILED`, timeout async 10s, idempotency, hành vi thất bại) làm cơ sở thiết kế tiếp (`ICD`/`DAT`/FE). **KHÔNG** đề nghị chuyển `Accepted` — `ADR-013` **giữ nguyên `Proposed`** vì chưa có chữ ký thật Tech Lead + PO (`ADR-013 §7`) và BA chưa viết `SRS`/`AC` cho US-004 (`OQ-034`). Ghi dòng "Reviewed (Proposed giữ nguyên)" ở `ADR-013 §9` — cùng mẫu với 12 ADR trước (`ADR-001…012`). Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**. `Confidence` 🔴; `AG2` chưa ký. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~7 *(radar gốc của chính `ADR-013`, không đổi bởi việc review — chi phí đảo ngược cao (>4 tuần, đã lộ FE) · bán kính ảnh hưởng Cart&Order/Payment/FE/BA/ICD · chạm `QAS-002` Must trực tiếp · ràng buộc trung hạn · không tranh cãi mới)* | `adr/ADR-013_bat-dong-bo-hoa-khoi-tao-thanh-toan.md §9`, `00-index/ADL_e-commerce.md` | | DEC-27 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 6 — `SEC`) cho e-commerce dù AG1 chưa ký thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…26`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. `SEC_e-commerce_v1.0.md` tạo mới — threat model STRIDE cho 8 ranh giới tin cậy (`THR-01…31`, mỗi cái truy về `QAS`/`ASR`/`ADR` nguồn); mô hình authn (Guest/Customer/Seller/Admin, phát hiện khoảng trống service-to-service authn giữa Nhóm Giao dịch↔Nhóm Hỗ trợ↔Payment — đề xuất PA-3 service JWT, radar ~5, `ADR` bắt buộc chưa viết, `OQ-050`); mô hình authz (map đủ 2/2 `ROLE-nn` của `RBAC_CartCheckout`, chỗ ra quyết định = service theo `ADR-007`, fail-closed `E-CART-0007`); phân loại/mã hoá/masking PII và tuân thủ PCI-DSS/NĐ13/2023 — **toàn bộ đánh dấu "đề xuất chờ Legal/Security phủ quyết"** vì chưa có người (`OQ-007`); webhook: chưa bịa cơ chế chữ ký cụ thể của VNPay/Momo/GHN/GHTK (chưa có tài liệu đối tác, `OQ-049`, `ARISK-03/04`); trả lời `OQ-023` bằng đề xuất số cụ thể (30 req/phút Guest cart) kèm hệ quả hai chiều, không tự quyết thay Security; secret management (Secrets Manager, rotation), audit log (trường bắt buộc + retention theo phương án (a) đã chốt ở `OQ-047`), chuỗi cung ứng (SCA/container scan, pentest/ASV). Đề xuất `FIT-29…33` cho GĐ3. Thêm `OQ-048…053`, `ASM-39…41`. Không viết `ADR` mới (chỉ đề xuất 1 ứng viên cho hoạt động `adr` kế tiếp). Không sửa `SAD`/`ICD`/`DAT`/`FAIL`/`ADR` đã có. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — ghi tài liệu threat model, chưa có dòng code phụ thuộc · bán kính ảnh hưởng: hoạt động `inf` kế tiếp và toàn bộ dev dùng `SEC` làm nguồn sự thật authn/authz/PII, nhưng bản thân việc ghi tài liệu dưới ngoại lệ thì nhỏ · có chạm `QAS-010/011/012` Must trực tiếp (đang thiết kế cách đạt chúng) nhưng chưa phải cam kết thi công (chưa `FIT` nào chạy) · không ràng buộc dài hạn tự thân (văn bản sửa được qua version mới) · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…26`) → **ghi `DEC-nn`, không cần `ADR` cho việc chạy dưới ngoại lệ**. **Hệ quả nếu không chấp nhận ngoại lệ:** hoạt động `inf` (hoạt động 7) không có mô hình threat/authn/authz để thiết kế network segmentation/secret management thật — chậm tiến độ tương ứng thời gian xử lý `OQ-007` (chặn hoàn toàn hiệu lực phủ quyết của `SEC`). | `SEC_e-commerce_v1.0.md` (toàn bộ), `OQ-048…053` | | DEC-28 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `SEC_e-commerce_v1.0.md` bản v1.0: ghi nhận nội dung 31 `THR` STRIDE (§4), map `ROLE-01/02` (§3.1), mô hình authn/authz đề xuất (§2, §3), SAQ A (§8.1), đề xuất rate limit **30/10/10 req/phút** (§5.3, `ASM-40`), quản lý secret/scanning (§6), audit log theo phương án (a) (§7). Chốt **TẠM** `OQ-050`: chọn **PA-3** (service JWT ngắn hạn ký bởi Identity & Access, không phải PA-2 mTLS/App Mesh) cho service-to-service authn giữa Nhóm Giao dịch↔Nhóm Hỗ trợ↔Payment — yêu cầu SA viết `ADR-015` (`Proposed`) ở lượt hoạt động `adr` kế tiếp cùng `ADR-014` đang nợ; `OQ-050` **giữ nguyên MỞ**, chờ Security + Ops/SRE thật xác nhận trước khi `Accepted`. **KHÔNG ký thay Security**: header `Approved by → Security` giữ `—`, `SEC` **chưa có hiệu lực phủ quyết AG2** cho tới khi có đại diện Security/Legal thật (`OQ-007`); mọi kết luận PII/residency/retention (§5, §8.2) vẫn là đề xuất chờ Legal/Security, không phải quyết định cuối. Ops/SRE **chưa ký**. Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; `OQ-004` giữ mở. `Confidence`/Status của `SEC` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~5 (giống radar ước lượng PA-3 của chính `SEC §2.4` — chi phí đảo ngược trung bình (đổi cơ chế sau khi code tốn sửa cả hai đầu gọi) · bán kính ảnh hưởng: mọi lời gọi cross-network nội bộ TB3/TB4 + tiền lệ cho `IF` tương lai · chạm gián tiếp `QAS-002`/`QAS-010` · ràng buộc ≥1 năm (chuẩn nội bộ service-to-service) · không tranh cãi mới, tiếp nối tiền lệ `DEC-12/14/16/19/25`) | `SEC_e-commerce_v1.0.md` (header, Change Log), `OQ-050` (cập nhật, không đóng) | | DEC-29 (SA) | Tiếp tục `sa-2-architecture` (hoạt động 7 — `INF`) cho e-commerce dù AG1 chưa ký thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…28`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. `INF_e-commerce_v1.0.md` tạo mới — topology AWS `ap-southeast-1` (2 AZ, ALB+WAF, 2 ECS Fargate Nhóm Giao dịch/Nhóm Hỗ trợ + Payment tách biệt, RDS chính Multi-AZ + RDS Payment, ElastiCache Redis, SQS FIFO+EventBridge+DLQ, S3/CloudFront, Secrets Manager/KMS, NAT) đối chiếu `TCO §3.2` từng dòng (khớp toàn bộ trừ 1 điểm bản chất — cross-region snapshot Payment vs `ADR-009` "không multi-region", `OQ-054`, không tự sửa); split ECS task GD/HT đề xuất khớp tổng `TCO` (`OQ-055`); HA/auto-scaling A→B theo `QAS-009`, phát hiện SPOF ElastiCache kịch bản A (`OQ-058`); DR RPO≤15’/RTO≤1h theo `QAS-008`/`ADR-009` + **kế hoạch diễn tập DR 3 kịch bản** (mất AZ/RDS primary/Redis) kèm tiêu chí PASS/FAIL đo thật (`OQ-022`/`OQ-056`, ngày thật chờ Ops/SRE); observability alert ≤1 phút nhóm giao dịch cốt lõi (`QAS-013`), DLQ 14 ngày + alert lag>5 phút (`OQ-036`), error budget 43 phút/tháng trừ bảo trì ≤2h (`OQ-020`), on-call theo `CON-08`/`OQ-008`; CI/CD (build→test→SAST→SCA(Trivy/Snyk)→migration→deploy, blue-green 3 service, migration Flyway theo `OQ-045`); network/SG + egress đối tác ngoài (`OQ-057`); giải quyết khoảng trống service discovery GD↔HT (`SAD §7`/`OQ-028`) bằng AWS Cloud Map/ECS Service Connect (ghi mức `DEC`, không `ADR`); IaC đề xuất Terraform + `FIT-34…38` GĐ3; đề xuất 2 `ADR` ứng viên mới (`ADR-016` blue-green, `ADR-017` Terraform) cho hoạt động `adr` kế tiếp — không viết `ADR` ở lượt này. Thêm `OQ-054…063`, `ASM-42…46`. Không sửa `SAD`/`ICD`/`DAT`/`SEC`/`FAIL`/`ADR` đã có. `Confidence` 🔴 toàn bộ. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — tài liệu hạ tầng, chưa IaC thật · bán kính ảnh hưởng: `sa-3-enablement` phụ thuộc `INF` nhưng bản thân việc ghi tài liệu dưới ngoại lệ thì nhỏ · chạm `QAS-008/009/013` Must trực tiếp nhưng chưa cam kết thi công · không ràng buộc dài hạn tự thân · không tranh cãi mới, tiếp nối tiền lệ `DEC-11…28`) | `INF_e-commerce_v1.0.md` (toàn bộ), `OQ-054…063` | | DEC-30 (SA) | Điều phối dự án (thay mặt Tech Lead, ngoại lệ `DEC-01`) duyệt **từng phần** `INF_e-commerce_v1.0.md` bản v1.0: chấp nhận topology AWS `ap-southeast-1`, bảng đối chiếu `INF↔TCO` (§10), HA/auto-scaling split ECS Nhóm Giao dịch/Nhóm Hỗ trợ A 2/2 – B 6/4 (`ASM-42`, `OQ-055` giữ mở), kế hoạch diễn tập DR 3 kịch bản (`OQ-022`/`OQ-056`, ngày thật chờ Ops/SRE — điều kiện tiên quyết AG2), observability, chiến lược CI/CD blue-green (`ADR-016` ứng viên), network/egress, IaC Terraform (`ADR-017` ứng viên). Chốt **TẠM** `OQ-058`: giữ nguyên `TCO` — **KHÔNG** thêm replica Redis ở kịch bản A, chấp nhận rủi ro SPOF ElastiCache kịch bản A với hành vi fail-closed theo `FAIL` (không mất dữ liệu nghiệp vụ, chỉ gián đoạn dịch vụ tạm thời) — `OQ-058` **giữ nguyên MỞ**, chờ PO xác nhận cuối cùng (đây là đánh đổi chi phí/rủi ro của PO, không phải SA/Tech Lead tự quyết). Đồng ý để SA viết `ADR-016` (blue-green) và `ADR-017` (Terraform) ở mức `Proposed` cùng lúc với `ADR-014` (outbox, `DAT`) và `ADR-015` (service JWT, `SEC`) ở lượt hoạt động `adr` kế tiếp. `OQ-054` (cross-region snapshot Payment vs `ADR-009` "không multi-region") **giữ nguyên mở**, không tự chọn hướng. **KHÔNG ký thay Ops/SRE**: header `Approved by → Ops/SRE` của `INF` giữ `—` — `INF` **chưa có hiệu lực xác nhận HA/DR/observability thật** cho tới khi Ops/SRE ký (`INF` là artifact cuối cần chữ ký Ops/SRE trực tiếp theo `workflow.md §2`). Security **chưa ký**. Ký thay Tech Lead theo ngoại lệ `DEC-01` (SA) — **không phải chữ ký Tech Lead thật**; `OQ-004` (tính hợp lệ ký thay) giữ mở. `Confidence`/Status của `INF` **giữ nguyên** (🔴 / 🟡 Draft) — duyệt từng phần không phải AG2 toàn phần, không phải bằng chứng nguồn mới nên không nâng `Confidence`. | Điều phối dự án (đại diện PO/Tech Lead, dự án chạy thử) | 2026-09-15 | ~4 (giống radar gốc ước lượng của `INF` — chi phí đảo ngược thấp (tài liệu hạ tầng, sửa được qua version mới, chưa IaC thật) · bán kính ảnh hưởng: `sa-3-enablement` dùng `INF` làm đầu vào chuẩn bị go-live · chạm `QAS-008/009/013` Must trực tiếp nhưng chưa cam kết thi công (chưa IaC/diễn tập thật) · không ràng buộc dài hạn tự thân (văn bản sửa được) · không tranh cãi mới, tiếp nối tiền lệ `DEC-12/14/16/19/25/28`) | `INF_e-commerce_v1.0.md` (header, Change Log), `OQ-058` (cập nhật, không đóng), `OQ-054`/`OQ-055`/`OQ-056` (không đổi) | | DEC-31 (SA) | Viết 4 `ADR` còn nợ cho e-commerce trong khi AG1 chưa ký thật và AG2 (gate của chính GĐ2) chưa tới hạn — tiếp nối `DEC-01…30`. Người dùng (điều phối dự án) tái khẳng định muốn tiếp tục. Viết `ADR-014` (Transactional Outbox, hiện thực hoá hướng đã chọn TẠM ở `DAT §4.1`/`OQ-044`/`DEC-25`, radar 6/10), `ADR-015` (Service JWT ngắn hạn service-to-service, hiện thực hoá PA-3 đã chọn TẠM ở `SEC §2.4`/`OQ-050`/`DEC-28`, radar 5/10 — **`Accepted` bị chặn cứng bởi `OQ-007`, Security chưa có người**), `ADR-016` (Blue-green qua AWS CodeDeploy cho 3 dịch vụ ECS, hiện thực hoá đề xuất `INF §7.2`/`DEC-30`, radar 6/10), `ADR-017` (IaC Terraform, hiện thực hoá đề xuất `INF §11`/`DEC-30`, radar 7/10). **Cả 4 `ADR` giữ `Proposed`** — không cái nào `Accepted` (chưa chữ ký thật; không cái nào đạt radar ≥8 nên không bắt buộc POC, nhưng mỗi ADR ghi rõ điều kiện `Accepted` riêng ở §3 của từng file). Link 4 `ADR` vào `DAT_e-commerce_v1.0.md` (v1.1, §4.1), `SEC_e-commerce_v1.0.md` (v1.1, §2.4/§4 TB3-TB4), `INF_e-commerce_v1.0.md` (v1.1, §7.2/§11/§13) — chỉ thay "ứng viên"/"chưa viết" bằng đường dẫn thật, không đổi nội dung chuyên môn khác, mỗi file bump `+0.1` kèm Change Log "chỉ link ADR, không đổi nội dung". Cập nhật `ADL_e-commerce.md` (17 `ADR`, tất cả `Proposed`) và `DTM_e-commerce.md` (`ASR-004`/`ASR-005` → thêm `ADR-014`; `ASR-007` → thêm `ADR-015`; `QAS-007` → `ADR-016`; ghi nhận `ADR-017` không có `ASR`/`QAS` nguồn trực tiếp, hợp lệ vì gắn `CON-05`/`D9`). Không sửa 13 `ADR` cũ, không sửa nội dung `SAD`/`ASR`/`QAS`/`ICD`/`FAIL`. `Confidence` 🔴 toàn bộ 4 `ADR` mới. | Điều phối dự án (đại diện PO, dự án chạy thử) | 2026-09-15 | ~4 (chi phí đảo ngược thấp — ghi 4 ADR + link tài liệu, chưa có dòng code phụ thuộc · bán kính ảnh hưởng: AG2 phụ thuộc nhưng bản thân việc ghi dưới ngoại lệ thì nhỏ · chạm gián tiếp `QAS-005/007/002/010` Must nhưng chưa cam kết thi công (không ADR nào `Accepted`) · không ràng buộc dài hạn tự thân (nội dung từng ADR đã chấm radar riêng 5–7, không cái nào ≥8) · không tranh cãi mới, tiếp nối tiền lệ `DEC-17/23`) | `ADR-014…017` (toàn bộ), `DAT_e-commerce_v1.0.md` (v1.1), `SEC_e-commerce_v1.0.md` (v1.1), `INF_e-commerce_v1.0.md` (v1.1), `ADL_e-commerce.md`, `DTM_e-commerce.md` | ## Ghi chú - Dùng chung ID-space `DEC-nn` với bộ BA nhưng là sổ riêng của SA. Bộ BA của e-commerce hiện có `DEC-01` (và theo ghi chú điều phối, các ngoại lệ gate `DEC-02..07` đang được dùng để chạy thử dự án — không có Designer, PO ký thay). Sổ SA sẽ cấp số `DEC-01` trở đi độc lập; khi tham chiếu chéo giữa hai bộ, ghi rõ `DEC-nn (BA)` hoặc `DEC-nn (SA)` để tránh nhầm lẫn. - Mọi lần bỏ giai đoạn SA (theo `workflow.md §5`) phải ghi một dòng ở đây kèm lý do.