Files
sys-analysis-design/sa-output/e-commerce/00-index/INDEX_e-commerce.md
Canhchimlac 343ad8bbbc save
2026-09-15 16:02:30 +07:00

162 lines
22 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# INDEX — e-commerce (kiến trúc)
| | |
|---|---|
| **Cập nhật** | 2026-09-15 |
| **Giai đoạn hiện tại** | GĐ2 · `sa-2-architecture` — **đủ 9/9 hoạt động** (`qas`/`asr`/`sad`/`icd`/`dat`/`sec`/`inf`/`fail`/`adr`). Đủ **8/8 loại artifact GĐ2** (`QAS` v1.0, `ASR` v1.0, `SAD` v1.3, `ICD` v1.0, `DAT` v1.1, `SEC` v1.1, `INF` v1.1, `FAIL` v1.1) + **17 `ADR`** (`ADR-001…017`). Mọi artifact 🟡 Draft đã được duyệt **từng phần** bởi "Điều phối dự án (thay mặt Tech Lead)" theo ngoại lệ gate `DEC-01` (dự án chạy thử, xem `DEC_e-commerce.md`) — **không phải chữ ký Tech Lead thật**. **Security và Ops/SRE chưa ký bất kỳ artifact nào** ở GĐ1 lẫn GĐ2 (`OQ-007` — chưa có người Pháp chế/Bảo mật; `OQ-004` — tính hợp lệ ký thay còn mở). GĐ1 (`sa-1-context`) đủ 4 artifact (`CTX` v1.2, `OPT` v1.0, `TCO` v1.1, `ARISK` v1.0), mỗi file duyệt từng phần bởi PO uỷ quyền. `OPT` chọn **P2** (modular monolith + managed AWS, tách riêng Payment) làm hướng đi cho GĐ2, điều kiện `OQ-010`/`OQ-012` (`DEC-06`) — đã được trả nợ ADR bằng `ADR-001`. |
| **Gate gần nhất đã qua** | **Chưa có.** AG1 — 4/4 artifact GĐ1 tồn tại, mỗi file tự chấm đủ tiêu chí cấu trúc nhưng nội dung còn `OQ-004` (tính hợp lệ ký thay), `OQ-005/006/007/008/013…017` (số thật ngân sách/deadline/vận hành/nhà cung cấp) mở, và `POC-01`/`POC-02` chưa chạy — PO/Tech Lead thật chưa ký. AG2 — 9/9 hoạt động và 8/8 artifact + 17 ADR đã có về **nội dung**, coverage `ASR→ADR` đạt 12/15 + 3 lý do hợp lệ (xem `DTM §3`), nhưng thiếu: chữ ký thật Tech Lead + Security + Ops/SRE (mới có Tech Lead ký thay có điều kiện trên từng file); `POC-01`/`POC-02`/diễn tập DR/diễn tập inject lỗi chưa chạy (chặn `ADR-005`/`ADR-006`/`ADR-009` `Accepted`, đồng thời diễn tập DR là điều kiện tiên quyết ký AG2 theo `DEC-12`); Security chưa có người (`OQ-007` — chặn `ADR-008` hoàn toàn, chặn cứng `ADR-015`, `SEC` chưa có hiệu lực phủ quyết AG2). |
| **ADR đang Proposed** | **17** (`ADR-001…017`) — tất cả `Proposed`, **không cái nào `Accepted`**. 3 ADR radar ≥8 (`ADR-005` SQS FIFO+EventBridge, `ADR-006` RDS gộp schema-per-module, `ADR-009` HA/DR nhóm giao dịch lõi) bắt buộc `POC-01`/`POC-02`/diễn tập DR PASS trước khi `Accepted` (`decision-radar.md §2/§6`). `ADR-008` (vùng lưu trữ PII) chặn hoàn toàn tới khi có đại diện Pháp chế/Bảo mật (`OQ-007`). `ADR-015` (Service JWT service-to-service) **chặn cứng** bởi cùng lý do — quyết định bảo mật không ai có thẩm quyền ký. 4 ADR mới nhất (`DEC-31`, 2026-09-15): `ADR-014` (Transactional Outbox cho publish sự kiện, radar 6), `ADR-015` (Service JWT ngắn hạn, radar 5), `ADR-016` (Blue-green qua AWS CodeDeploy, radar 6), `ADR-017` (IaC Terraform, radar 7). Xem `ADL_e-commerce.md` để biết mục lục đầy đủ, nguồn, và điều kiện `Accepted` riêng từng ADR. |
## Artifact
| Loại | File mới nhất | Version | Status | Confidence | Cập nhật |
|---|---|---|---|---|---|
| CTX | `01-context/CTX_e-commerce_v1.0.md` | 1.2 | 🟡 Draft (duyệt từng phần §2/§3/§5 — §4 chờ AG1 toàn phần cùng đợt) | 🔴 | 2026-09-12 |
| OPT | `01-context/OPT_e-commerce_v1.0.md` | 1.0 | 🟡 Draft (duyệt từng phần — chọn P2 có điều kiện `OQ-010`/`OQ-012`, Tech Lead chưa ký thật) | 🔴 | 2026-09-12 |
| TCO | `01-context/TCO_e-commerce_v1.0.md` | 1.1 | 🟡 Draft (duyệt từng phần — cấu trúc 4 nhóm chi phí + kết luận "P2 rẻ hơn P1"; đơn giá AWS/tỷ giá/FTE Ops chưa xác nhận) | 🔴 | 2026-09-12 |
| ARISK | `01-context/ARISK_e-commerce_v1.0.md` | 1.0 | 🟡 Draft (duyệt từng phần — 10 rủi ro + kế hoạch `POC-01`/`POC-02`; POC chưa chạy) | 🔴 | 2026-09-12 |
| QAS | `02-architecture/QAS_e-commerce_v1.0.md` | 1.0 | 🟡 Draft (duyệt từng phần — Tech Lead ký thay có điều kiện; 14 `QAS`; diễn tập DR chốt là điều kiện tiên quyết AG2; Security/Ops chưa ký) | 🔴 | 2026-09-14 |
| ASR | `02-architecture/ASR_e-commerce_v1.0.md` | 1.0 | 🟡 Draft (duyệt từng phần — 15 `ASR` + 12 `ADR` ứng viên chấp nhận; `ADR-005/006/009` chờ POC/diễn tập DR; Security/Ops chưa ký) | 🔴 | 2026-09-15 |
| SAD | `02-architecture/SAD_e-commerce_v1.0.md` | 1.3 | 🟡 Draft (duyệt từng phần bản v1.0; v1.1 link 12 ADR; v1.2 sửa lỗi đếm `IF-nn` 22→17 — đóng `OQ-029`; v1.3 sửa nhất quán §6.1/§8 theo `ADR-013`; C4 Context/Container/Component + deployment view + 15 `CMP` (ma trận `ASR→CMP` 15/15); Security/Ops chưa ký) | 🔴 | 2026-09-15 |
| ICD | `02-architecture/ICD_e-commerce_v1.0.md` | 1.0 | 🟡 Draft (duyệt từng phần — catalog 17 `IF-nn` + chi tiết `IF-002` (Cart&Checkout); xác nhận/điều chỉnh `API_US002-003` của BA; đối tác ngoài/Email-SMS chưa có contract thật; Security/Ops chưa ký) | 🔴 | 2026-09-15 |
| DAT | `02-architecture/DAT_e-commerce_v1.0.md` | 1.1 | 🟡 Draft (duyệt từng phần bản v1.0 — ownership 15 `CMP`, mô hình `Order`/`OrderSeller`/`Payment`, idempotency, PITR; v1.1 chỉ link `ADR-014` (Outbox), không đổi nội dung khác; **§5 PII/retention/whitelist CHƯA CÓ HIỆU LỰC** — chờ `OQ-007`; Security/Ops chưa ký) | 🔴 | 2026-09-15 |
| SEC | `02-architecture/SEC_e-commerce_v1.0.md` | 1.1 | 🟡 Draft (duyệt từng phần bản v1.0 — 31 `THR` STRIDE, map `ROLE-01/02`, mô hình authn/authz, SAQ A, rate limit đề xuất 30/10/10 req/phút; v1.1 chỉ link `ADR-015` (Service JWT); **§5/§8.2 CHƯA CÓ HIỆU LỰC** — Security chưa có người (`OQ-007`), `SEC` chưa có hiệu lực phủ quyết AG2; Ops/SRE chưa ký) | 🔴 | 2026-09-15 |
| INF | `02-architecture/INF_e-commerce_v1.0.md` | 1.1 | 🟡 Draft (duyệt từng phần bản v1.0 — topology AWS `ap-southeast-1`, HA/auto-scaling, kế hoạch diễn tập DR 3 kịch bản, CI/CD blue-green; v1.1 chỉ link `ADR-016`/`ADR-017`; Security/Ops/SRE chưa ký) | 🔴 | 2026-09-15 |
| FAIL | `02-architecture/FAIL_e-commerce_v1.0.md` | 1.1 | 🟡 Draft (duyệt từng phần bản v1.0 — 13 phụ thuộc `FM-01…13`, bảng mã lỗi §5, `FIT-16…22`; **`OQ-034` chọn Lựa chọn B** (bất đồng bộ hoá khởi tạo thanh toán) → `ADR-013`; v1.1 sửa nhất quán §1.2 theo `ADR-013`; Security/Ops chưa ký) | 🔴 | 2026-09-15 |
| ADR-001…017 | `02-architecture/adr/ADR-001…017_*.md` | — | 17× `Proposed` — không ADR nào `Accepted` (thiếu chữ ký thật Tech Lead/Security/Ops; `ADR-005/006/009` radar ≥8 chờ `POC-01`/`POC-02`/diễn tập DR; `ADR-008`/`ADR-015` chặn cứng bởi `OQ-007`) | 🔴 | 2026-09-15 |
## Open Question đang mở
*(Sổ đầy đủ tại `00-index/OQ_e-commerce.md` v1.25. Bảng dưới liệt kê **toàn bộ 59 OQ đang mở**
— `OQ-001..063` trừ 4 câu đã đóng: `OQ-002`, `OQ-009`, `OQ-011`, `OQ-029`, xem "Open Question đã
đóng" trong sổ gốc để biết nội dung/người trả lời.)*
| ID | Nội dung ngắn | Hỏi ai | Chặn gì |
|---|---|---|---|
| OQ-001 | BA chưa ký G1 chính thức cho `BRIEF_CartCheckout` — chấp nhận `DRV` giữ Confidence 🔴 tiếp tục hay dừng? | PO sàn + BA | Nâng Confidence `CTX`; ký AG1 |
| OQ-003 | Giữ phạm vi Toàn sàn hay thu hẹp về Giỏ hàng & Checkout? | PO sàn + Tech Lead | Khối lượng/độ tin cậy `OPT`/`TCO`/`ARISK` |
| OQ-004 | Ngoại lệ gate `DEC-01` có cần PO sàn thật xác nhận lại bằng văn bản riêng? | PO sàn (người thật) | Tính hợp lệ mọi phê duyệt GĐ1/GĐ2 khi trình AG1/AG2 |
| OQ-005 | Ngân sách hạ tầng/tháng + chi phí một lần đã duyệt là bao nhiêu? | PO/tài chính | `CON-01`; `TCO`; loại phương án `OPT` |
| OQ-006 | Deadline dự án chính thức? (brief "~9-12 tháng" vs hồ sơ thầu "7 tháng" không khớp) | PO/PM | `CON-02`; kịch bản `OPT` |
| OQ-007 | Ai là đại diện Pháp chế/Bảo mật xác nhận residency NĐ13/2023? `DAT §5`/`SEC §5,§8.2` là đề xuất CHƯA CÓ HIỆU LỰC tới khi có người | PO sàn (chỉ định người) | `CON-06`; `DAT`/`INF`; hiệu lực phủ quyết `SEC`; `ADR-008`/`ADR-015` `Accepted` |
| OQ-008 | Đội vận hành sau go-live nội bộ hay thuê ngoài, quy mô? | PM/SRE | `CON-05`/`08`; `INF` |
| OQ-010 | Tech Lead xác nhận đội thi công thật có kinh nghiệm production Kafka/MSK/OpenSearch/EKS? | Tech Lead | Rủi ro kỹ thuật `OPT`; `ARISK-05`; `ADR-001`/`ADR-005` `Accepted` |
| OQ-012 | Chạy POC throughput SQS/EventBridge trước khi chốt P2, hay chấp nhận rủi ro tạm? | Tech Lead | `ADR` message backbone; `ARISK-01`/`POC-01` |
| OQ-013 | Xác nhận đơn giá AWS `ap-southeast-1` thật (Pricing Calculator/báo giá) | Tech Lead/DevOps + tài chính | Độ tin cậy `TCO`; ngân sách `INF` |
| OQ-014 | Biểu phí giao dịch VNPay/Momo thật + GMV dự kiến năm 1? | PO/tài chính | `TCO` (`NL-03`) |
| OQ-015 | Biểu phí API GHN/GHTK theo hợp đồng thật? | PM | `TCO` (`NL-05`); `ARISK-04` |
| OQ-016 | Nhà cung cấp Email/SMS cụ thể + biểu phí? | PM/Tech Lead | `TCO` (`NL-04`); `ARISK-10`; `ICD` |
| OQ-017 | Báo giá pentest hàng năm + ASV scan hàng quý (SAQ A) thật? | PO/Security | `TCO` (`NL-07`) |
| OQ-018 | Ngưỡng p95 `GET /v1/cart` — SA đề xuất ≤500ms | PO + Tech Lead | `QAS-003` baseline; `FIT` GĐ3 |
| OQ-019 | Ngưỡng p95 `PATCH`/`DELETE /v1/cart/items` — SA đề xuất ≤300ms | PO + Tech Lead | `QAS-004` baseline; `FIT` GĐ3 |
| OQ-020 | Cửa sổ bảo trì loại trừ ngân sách lỗi — SA đề xuất ≤2 giờ/tháng | PO | `QAS-007`; chính sách release `INF` |
| OQ-021 | Tần suất job đối soát thanh toán — SA đề xuất ≤15 phút/lần | Tech Lead | `QAS-014`; `DAT`/`INF` |
| OQ-022 | Lịch diễn tập DR đầu tiên — **điều kiện tiên quyết ký AG2** đã chốt (`DEC-12`), ngày thật chờ Ops/SRE (nối `OQ-056`) | Ops/SRE | `QAS-008`; điều kiện AG2 |
| OQ-023 | Ngưỡng rate limit Guest cart — SEC đề xuất 30 req/phút theo `session_id` + 60 req/phút theo IP, không tự quyết thay Security | Tech Lead + Security | Hoạt động `sec`/`icd`; `NFR-SEC-03` (BA) |
| OQ-024 | Phương thức MFA Admin — chốt TẠM TOTP app (`ASM-20`), chưa xác nhận thật | Tech Lead + Security | `ASR-009`; `SEC` |
| OQ-025 | Dịch nội dung seller sang 5 ngôn ngữ ở MVP? — chốt TẠM không dịch (`ASM-21`) | PO + Tech Lead | `ASR-015`; `DAT` |
| OQ-026 | Số ECS service thật cho 2 nhóm triển khai — chốt TẠM 2 service riêng (`ASM-23`, nối `OQ-055`) | Tech Lead + Ops/SRE | `SAD §7`; `ADR-012` |
| OQ-027 | Identity & Access thuộc nhóm nào — chốt TẠM Nhóm Giao dịch (`ASM-22`) | Tech Lead | `CMP-02`; `ADR-012` |
| OQ-028 | `IF-021` in-process hay cross-network? — chốt TẠM cross-network (`ASM-24`) | Tech Lead | `ICD §3.6`; `FAIL`; `QAS-002` |
| OQ-030 | Xác nhận schema sự kiện `OrderPlaced`/`PaymentConfirmed` + `IF-006` nhận `sellerId` — chốt TẠM chấp nhận (`ASM-26`) | Tech Lead | Thi công Cart&Order/Payment; `DAT` |
| OQ-031 | Tên header correlation id — đề xuất `X-Request-Id` | Tech Lead | Chuẩn hoá observability |
| OQ-032 (SA) | Chiều gọi `IF-022` — chốt TẠM Cart&Order → Seller Mgmt (`ASM-25`) | Tech Lead | `ICD §3.7`; denormalize `sellerName` |
| OQ-033 (SA) | Denormalize `sellerName` vào `CartItem`? — chốt TẠM chấp nhận | Tech Lead + DBA | `DAT`; `QAS-003` |
| OQ-034 | Ngân sách timeout checkout vượt `QAS-002` — **đã chọn Lựa chọn B** (bất đồng bộ hoá khởi tạo thanh toán), đã viết `ADR-013`, chờ Tech Lead + PO **thật** xác nhận | Tech Lead + PO | `ADR-013` `Accepted`; `SRS`/`AC` US-004 (BA); `ICD` polling |
| OQ-035 | Ngưỡng circuit breaker `FM-01/02/03/04/12/13` — chốt TẠM đề xuất SA | Tech Lead + SRE | Cấu hình thi công; `FIT-19/20/21` |
| OQ-036 | DLQ retention 14 ngày + cảnh báo lag >5 phút — chốt TẠM | Tech Lead + SRE | `INF` retention/alerting |
| OQ-037 | Kích thước bulkhead (connection pool) — chờ `POC-02` (nối `OQ-061`) | DBA + Tech Lead | Cấu hình pool thi công |
| OQ-038 | Giữ transaction DB mở xuyên `IF-006`/`007/008`? + 3 mã lỗi mới US-004 chưa có trong `SRS` | Tech Lead + BA | `SAD §6.1`; `SRS`/`AC` US-004 |
| OQ-039 | SLA xử lý thủ công khi GHN+GHTK cùng lỗi? | PO + Ops | Runbook vận hành GĐ3 |
| OQ-040 | Cache nội dung `Cart` cho fallback RDS chậm? — SA nghiêng Phương án B (cache-aside); mã lỗi `E-CART-0007` | Tech Lead | `DAT`/`INF` cache strategy; mã lỗi `SRS` |
| OQ-041 | Cơ chế FE lấy `redirectUrl` — chốt TẠM polling, hay SSE/WebSocket? | Tech Lead (+ FE) | Contract endpoint `ICD` lượt sau; thiết kế FE US-004 |
| OQ-042 | Ngưỡng job dọn `Order` kẹt `PENDING_PAYMENT_INIT` — chốt TẠM 5 phút | Tech Lead | Thiết kế job quét `dat`/`inf` |
| OQ-043 | 1 `Order` = 1 `Payment` hay tách theo `OrderSeller`? | Tech Lead + PO | Mô hình `payment.order_id`; `IF-006` |
| OQ-044 | Transactional Outbox (chốt TẠM, đã viết `ADR-014`) hay job quét đơn giản? | Tech Lead | `ADR-014` `Accepted`; thiết kế relay `INF` |
| OQ-045 | Công cụ migration schema — Flyway hay Liquibase? | Tech Lead | CI/CD; rollback schema |
| OQ-046 | Đọc `Cart`/`Order` route sang read replica hay luôn primary? — SA đề xuất chỉ Catalog dùng replica | Tech Lead | Cấu hình routing `INF`; độ tươi dữ liệu |
| OQ-047 | Kiến trúc audit trail — chốt TẠM (a) mỗi module tự ghi, không thêm `CMP-16` | Tech Lead + Security | Danh sách `CMP`; `ADR-001` nếu đổi hướng |
| OQ-048 | VNPay/Momo hỗ trợ redirect thuần (giữ phạm vi SAQ A)? | Tech Lead + Security | `SEC §8.1`; `ADR-002` |
| OQ-049 | Cơ chế chữ ký/HMAC webhook cụ thể của 4 đối tác? | Tech Lead | `THR-17`/`22`; kiểm chứng `ADR-004` |
| OQ-050 | PA-3 service JWT (chốt TẠM, đã viết `ADR-015`) hay PA-2 mTLS? | Tech Lead + Security + Ops/SRE | `ADR-015` `Accepted`; `INF` TB3/TB4; `THR-09`/`13` |
| OQ-051 | Số cụ thể Customer JWT TTL/refresh/thu hồi/rotation | Tech Lead | Thiết kế `CMP-02` |
| OQ-052 | Ngưỡng account lockout theo vai trò + rate-limit login | Tech Lead + Security | `THR-28`/`31`; `CMP-02` |
| OQ-053 | 3 trường whitelist chia sẻ seller hiển thị đầy đủ hay che một phần? | Security/Legal + PO | `DAT §5.2`; UI đơn hàng Seller |
| OQ-054 | Cross-region snapshot Payment (`TCO`) mâu thuẫn `ADR-009` (không multi-region)? | Tech Lead + Ops/SRE + PO | `INF §5.2` đối chiếu `TCO`; `ADR-009` |
| OQ-055 | Split ECS task GD/HT (A 2/2, B 6/4) + ngưỡng auto-scaling — nối `OQ-026` | Tech Lead + Ops/SRE | `INF §4.2`; Terraform GĐ3 |
| OQ-056 | Lịch diễn tập DR thật (3 kịch bản) — nối `OQ-022` | Ops/SRE | Điều kiện tiên quyết ký AG2 |
| OQ-057 | IP allowlist đối tác ngoài? | Tech Lead | `INF §8.3`; phối hợp đối tác |
| OQ-058 | ElastiCache SPOF kịch bản A — chốt TẠM giữ nguyên (không thêm replica), đánh đổi thuộc PO | PO + Ops/SRE | `INF §4.3`; cấu hình GĐ3 |
| OQ-059 | Retention log/backup + tỉ lệ sample X-Ray | Tech Lead + Ops/SRE | `INF §5.2`/`§6.1`; chi phí lưu trữ |
| OQ-060 | Công cụ IaC (chốt TẠM Terraform, đã viết `ADR-017`) + ngưỡng coverage test | Tech Lead | `ADR-017` `Accepted`; `INF §7.1` |
| OQ-061 | Kích thước connection pool RDS/HTTP — chờ `POC-02` — nối `OQ-037` | DBA + Tech Lead | Cấu hình RDS thật GĐ3 |
| OQ-062 | Non-prod tách VPC riêng hay account riêng? | Tech Lead + Ops/SRE | `INF §2`/`§3` |
| OQ-063 | Đội Ops/SRE thật (nội bộ/thuê ngoài, quy mô) — nối `OQ-008` | PM/SRE | `INF §5.4`/`§6.5`; on-call; tần suất diễn tập DR |
## Sổ quyết định (`DEC`) — tóm tắt DEC-01..31
*(Nội dung đầy đủ tại `00-index/DEC_e-commerce.md` v1.29. Toàn bộ 31 `DEC` đều gắn ngoại lệ gate
`DEC-01` (dự án chạy thử, Điều phối dự án ký thay PO/Tech Lead) — không phải chữ ký thật.)*
| ID | Việc chính | Ngày |
|---|---|---|
| DEC-01 | Ngoại lệ gate — chạy `sa-1-context` khi BA chưa qua G1 | 2026-09-12 |
| DEC-02 | Giả định tạm "team MVP chuẩn" cho `CON` nhóm Con người | 2026-09-12 |
| DEC-03 | Tiếp tục ngoại lệ gate sang Bước 2 (Ràng buộc) | 2026-09-12 |
| DEC-04 | Đóng `OQ-009` — `SAD.md`/hồ sơ thầu làm điểm khởi đầu tham khảo cho `OPT`, có điều kiện | 2026-09-12 |
| DEC-05 | Tiếp tục ngoại lệ gate sang Bước 4 (Phương án) | 2026-09-12 |
| DEC-06 | Chọn **P2** làm hướng đi tạm cho GĐ2, điều kiện `OQ-010`/`OQ-012` — đã trả nợ bằng `ADR-001` | 2026-09-12 |
| DEC-07 | Tiếp tục ngoại lệ gate sang Bước 5, phần `TCO` | 2026-09-12 |
| DEC-08 | Tiếp tục ngoại lệ gate sang Bước 5, phần `ARISK` | 2026-09-12 |
| DEC-09 | Duyệt từng phần `TCO` v1.1 | 2026-09-12 |
| DEC-10 | Duyệt từng phần `ARISK` v1.0 | 2026-09-12 |
| DEC-11 | Bắt đầu hoạt động `QAS` (GĐ2) dù AG1 chưa ký thật | 2026-09-14 |
| DEC-12 | Duyệt từng phần `QAS` v1.0 — chốt diễn tập DR là điều kiện tiên quyết AG2 | 2026-09-14 |
| DEC-13 | Bắt đầu hoạt động `ASR` | 2026-09-14 |
| DEC-14 | Duyệt từng phần `ASR` v1.0 (15 `ASR` + 12 `ADR` ứng viên) | 2026-09-15 |
| DEC-15 | Bắt đầu hoạt động `SAD` | 2026-09-15 |
| DEC-16 | Duyệt từng phần `SAD` v1.0 | 2026-09-15 |
| DEC-17 | Bắt đầu hoạt động `adr` — viết đủ `ADR-001…012` | 2026-09-15 |
| DEC-18 | Bắt đầu hoạt động `ICD` | 2026-09-15 |
| DEC-19 | Duyệt từng phần `ICD` v1.0 (17 `IF-nn`) | 2026-09-15 |
| DEC-20 | Sửa lỗi nhất quán `SAD` (đếm `IF-nn` 22→17, đóng `OQ-029`) lên v1.2 | 2026-09-15 |
| DEC-21 | Bắt đầu hoạt động `FAIL` | 2026-09-15 |
| DEC-22 | Duyệt từng phần `FAIL` v1.0 — chọn Lựa chọn B cho `OQ-034` | 2026-09-15 |
| DEC-23 | Viết `ADR-013` (bất đồng bộ hoá khởi tạo thanh toán) + sửa `SAD` lên v1.3, `FAIL` lên v1.1 | 2026-09-15 |
| DEC-24 | Bắt đầu hoạt động `DAT` | 2026-09-15 |
| DEC-25 | Duyệt từng phần `DAT` v1.0 — chốt TẠM Outbox/audit (a)/5 phút/polling | 2026-09-15 |
| DEC-26 | Review nội dung `ADR-013` — giữ `Proposed` | 2026-09-15 |
| DEC-27 | Bắt đầu hoạt động `SEC` | 2026-09-15 |
| DEC-28 | Duyệt từng phần `SEC` v1.0 — chốt TẠM PA-3 cho `OQ-050` | 2026-09-15 |
| DEC-29 | Bắt đầu hoạt động `INF` | 2026-09-15 |
| DEC-30 | Duyệt từng phần `INF` v1.0 — chốt TẠM giữ nguyên `TCO` (không thêm replica) cho `OQ-058` | 2026-09-15 |
| DEC-31 | Viết `ADR-014`/`015`/`016`/`017`, link vào `DAT`/`SEC`/`INF` (mỗi file `+0.1`, chỉ link) | 2026-09-15 |
## Rủi ro kiến trúc mức cao đang mở
*(6/10 rủi ro mức 🔴 Cao trong sổ `01-context/ARISK_e-commerce_v1.0.md` §1/§3; 3 mức 🟠 Trung bình
+ 1 mức 🟡 Thấp không liệt kê ở đây, xem sổ đầy đủ.)*
| ID | Rủi ro | Chủ | Cách hạ | Hạn |
|---|---|---|---|---|
| ARISK-01 | SQS/EventBridge chưa đo throughput thật cho `OrderPlaced`/`PaymentConfirmed` ở tải đỉnh flash sale | Tech Lead | `POC-01` (chưa chạy) — throughput ≥100 msg/s, p99 ≤2s, 0 mất message | Trước `ADR-005` chuyển `Accepted` (`OQ-012`) |
| ARISK-02 | 1 cụm RDS chính chưa đo tải ghi/đọc gộp cho toàn bộ module ngoài Payment | Tech Lead/DBA | `POC-02` (chưa chạy) — p95 write ≤300ms, p95 read ≤200ms, CPU <75% | Trước `ADR-006` chuyển `Accepted` |
| ARISK-03 | VNPay/Momo chưa sandbox/hợp đồng thật; webhook xác nhận thanh toán chưa xác minh gần thời gian thực | Tech Lead + PO | Đàm phán sandbox sớm; job đối soát bù (`FAIL`/`DAT`, cần xác minh lại) | Trước GĐ2 kết thúc (`ICD`) |
| ARISK-05 | Đội thi công thật chưa xác nhận kinh nghiệm production Kafka/MSK/OpenSearch/EKS (`OQ-010`) | Tech Lead | Xác nhận năng lực đội thật; thuê chuyên gia tư vấn nếu `POC-01` fail | Trước khi chốt `ADR-001`/`ADR-005` `Accepted` |
| ARISK-06 | Chia sẻ PII cho seller khi tách đơn chưa rà soát theo NĐ13/2023; residency chưa xác nhận | PO (chỉ định người) → Legal/Security | PO chỉ định đại diện Pháp chế (`OQ-007`); `DAT §5`/`SEC §5,§8.2` đã chuẩn bị đề xuất — **CHƯA CÓ HIỆU LỰC**, chờ Legal/Security phủ quyết | Trước `ADR-008`/`ADR-015` `Accepted`, chậm nhất trước go-live |
| ARISK-07 | Ngân sách vận hành 3 năm thật (11,2–19,1 tỷ VND tuỳ phương án) chưa được PO/tài chính xác nhận khả năng chi trả | PO/tài chính | Trình `TCO` đầy đủ (đã lập); nếu ngân sách thấp hơn — dùng P2 làm phương án cắt giảm | Trước khi ký AG1 |
## Ghi chú khởi tạo
- Cây thư mục `01-context/`, `02-architecture/adr/`, `03-enablement/`, `04-evolution/` được tạo
bởi skill giai đoạn tương ứng khi có artifact đầu tiên. `03-enablement/` và `04-evolution/`
**chưa được tạo** — GĐ3/GĐ4 chưa bắt đầu.
- Dự án e-commerce là "dự án chạy thử": gate SA/BA đang chạy bằng các ngoại lệ `DEC-01..31` (SA)
và `DEC-02..07` (BA), không có Designer, PO ký thay. Mọi phê duyệt hiện tại là "PO/Tech Lead
uỷ quyền — Điều phối dự án", **không phải chữ ký PO/Tech Lead/Security/Ops-SRE thật** (`OQ-004`).
- `sa-conformance` nên rà lại độc lập ở lần đồng bộ kế tiếp — `ADL`/`DTM` đã được cập nhật bởi
`sa-2-architecture` (hoạt động `adr`, `DEC-31`) khi ghi 4 ADR cuối, chưa qua `sa-conformance`
độc lập xác nhận coverage.
- Trạng thái đồng bộ với bộ BA: `ba-output/e-commerce/00-index/INDEX_e-commerce.md` — đối chiếu
`NFR↔QAS`, `API↔ICD`, `RBAC↔SEC`, `BR↔ADR` xem `DTM §8` (Đối chiếu chéo với bộ BA).