Files
2026-09-22 13:46:36 +07:00

5.8 KiB

DAT — Data Architecture —

Version 1.0
Date YYYY-MM-DD
Author (skill sa-2-architecture)
Status 🟡 Draft
Approved by Tech Lead: — · DBA: — · DPO/Legal: —
Source SAD_… v1.0 · BR_… của BA · schema hiện tại
Scope
Confidence 🟡

Change Log

Version Date Người sửa Thay đổi ADR
1.0 Bản đầu —

1. Nguyên tắc: mỗi thực thể có đúng một chủ

Quy tắc D7. Đồng bộ hai chiều không có chủ là cách sinh ra dữ liệu mâu thuẫn không ai gỡ được.

Thực thể Hệ thống chủ (SoT) Bản sao ở đâu Cập nhật bằng cơ chế gì Trễ tối đa cho phép Lệch quá thì sao
event / CDC / job / gọi trực tiếp cảnh báo QAS-nnn

🔴 Thực thể có hai chủ ⇒ chưa quyết xong, không được qua AG2. Chọn một bên; bên kia thành read model.

2. Mô hình dữ liệu mức khái niệm

Thực thể và quan hệ, chưa phải schema. Schema vật lý đủ cột, index, DDL và migration nằm ở PDM (--focus pdm), sinh sau tài liệu này — mỗi thực thể ở đây phải có ≥ 1 bảng trong PDM §2.

erDiagram
Thực thể Ý nghĩa nghiệp vụ Khoá tự nhiên Ước lượng số bản ghi (năm 1 / năm 3) Tăng trưởng

3. Chọn công nghệ lưu trữ

Kho Loại Chứa gì Vì sao loại này ADR
quan hệ / tài liệu / khoá-giá trị / cột / tìm kiếm gắn với QAS-nnn

Phương án bị loại: (quy tắc D3)

Loại Loại vì Xét lại khi

4. Consistency

Nhánh dữ liệu Mức nhất quán Trễ tối đa Vì sao chấp nhận được Ai chấp nhận ADR
Số dư ví Mạnh 0 BR-0nn không cho phép sai PO
Báo cáo tổng hợp Eventual ≤ 5 phút Người dùng chấp nhận theo QAS-nnn PO

🔴 "Eventual consistency" không có con số trễ là câu nói suông. Người dùng và QA cần biết lệch bao lâu là bình thường, bao lâu là sự cố.

4.1 Giao dịch xuyên service

Luồng nghiệp vụ Cơ chế Bù trừ khi lỗi giữa chừng Ai phát hiện lệch ADR
saga / outbox / 2PC / không có job đối soát chạy …

Nếu chọn "không có" — ghi rõ hệ quả: luồng nào có thể để lại trạng thái nửa vời, ai dọn, sau bao lâu.

5. Phân loại dữ liệu & tuân thủ

Nhóm dữ liệu Mức nhạy cảm Ví dụ trường Lưu ở đâu Mã hoá at-rest Che khi hiển thị Retention Cách xoá theo yêu cầu
công khai / nội bộ / PII / nhạy cảm
Ràng buộc pháp lý Nguồn Hệ quả kiến trúc
Dữ liệu phải nằm trong lãnh thổ … CON-05 Ràng buộc vùng cho mọi dịch vụ lưu trữ, kể cả backup và log
Quyền được xoá Xoá thật hay ẩn danh hoá? Ảnh hưởng tới báo cáo lịch sử?

🔴 Backup và log cũng chứa PII. Ràng buộc lãnh thổ và retention áp dụng cho cả hai — đây là chỗ bị bỏ sót nhiều nhất khi kiểm toán.

6. Vòng đời & lưu trữ dài hạn

Thực thể Dữ liệu nóng Chuyển sang lạnh sau Xoá sau Ai duyệt

7. Hiệu năng dữ liệu

Truy vấn quan trọng Tần suất Khối lượng quét Chỉ mục cần QAS
Vấn đề Quyết định ADR
Phân mảnh (sharding/partitioning) có/không · khoá: …
Đọc/ghi tách nhau
Cache: cái gì, invalidate thế nào

🔴 Cache invalidation phải thiết kế cùng lúc với cache. Cache không có chiến lược làm mới là nguồn dữ liệu sai mà không ai nghi ngờ.

8. Migration dữ liệu legacy

Bỏ mục này nếu hệ thống hoàn toàn mới — ghi rõ "không áp dụng", đừng để trống.

Nguồn hệ thống · số bản ghi · chất lượng
Cách chuyển một lần (big bang) / song song hai hệ thống / cuốn chiếu theo nhóm
Ánh xạ trường (bảng riêng bên dưới)
Cách đối chiếu sau khi chuyển (truy vấn nào, ngưỡng chênh lệch chấp nhận được là bao nhiêu)
🔴 Cách rollback (bắt buộc)
Dữ liệu phát sinh trong lúc chuyển (xử lý thế nào)
Thời lượng cửa sổ cắt chuyển

Ánh xạ trường

Trường nguồn Trường đích Chuyển đổi Xử lý giá trị thiếu/sai

🔴 Migration không có rollback là migration một chiều. Phải trả lời được: sau 2 giờ phát hiện sai thì quay lại thế nào, dữ liệu phát sinh trong 2 giờ đó xử lý ra sao. Chưa trả lời được ⇒ chặn AG2.

9. Sao lưu & khôi phục

Tần suất backup
Giữ bao lâu
Lần khôi phục thử gần nhất (chưa từng thử ⇒ Confidence 🔴 + ARISK)
Thời gian khôi phục đo được … (khớp với RTO ở INF)

10. Giả định & Ngoài phạm vi

Giả định:

ID Giả định Cách xác minh Nếu sai

Ngoài phạm vi:

11. Open Questions

ID Câu hỏi Hỏi ai Từ ngày Chặn gì Hệ quả nếu trả lời ngược