← 文件中心NEXUS-LEARN · UAT 技術架構

NEXUS-LEARN / 技術架構總覽

整體技術架構

從系統邊界、六層技術組成、具體功能到跨系統資料流,逐層查看目標架構。

已確認 系統邊界與業務規則 技術建議 接口與部署設計 待確認 外部契約及運行指標

架構邊界

四個業務系統、一套用戶端、一套統一後台管理系統。M1 招聘入職與 M1B 試用期合併為人員管理系統;M5 是統一後台內的審計中心。兩端透過共用 Node.js 領域邏輯操作同一組業務資料庫。

01 / 整體架構圖

六層技術組成

箭頭表示主要調用方向。五個邏輯資料庫可先部署在同一 PostgreSQL 實例,仍保留獨立帳號及寫入權限。

02 / 系統文件

逐一查看項目與子系統

03 / 系統交互

接口、事件與資料權威

來源目的系統接口/同步內容資料權威方
人員LMS/合規入職、員工 ID、在職狀態;Outboxpersonnel_db
LMS人員/合規完課結果及 LearningHoursAwarded;事件與只讀 API學習:lms_db;台帳:compliance_db
合規審計/看板LicenceLedgerUpdated:入帳分錄與規則版本compliance_db
LMS商城課程版本、排期及容量;事件+即時校驗lms_db
商城LMS付款、席位啟用、退款;Outbox 事件交易:commerce_db;報名:lms_db
四個業務系統審計中心操作事件及證據引用;Outbox源事實留原庫;鏈存 admin_audit_db
統一管理端各業務庫管理寫入走領域模組;跨庫報表走授權只讀查詢各業務系統
04 / 共用技術底座

統一框架與部署單元

前端與 API

兩套 Next.js + TypeScript 介面;Node.js + TypeScript 用戶 API、管理 API 和共用領域模組。

資料與異步

PostgreSQL 五個邏輯庫、Outbox、Node.js Worker、物件儲存和不可改寫證據快照。

身份及運維

OIDC、MFA、RBAC/ABAC、KMS、OpenTelemetry、備份與恢復演練。

Next.jsNode.jsTypeScriptPostgreSQLOutboxWorker物件儲存
05 / 部署與信任邊界

部署、資料與外部入口

flowchart LR
    subgraph 公網[公網及受限入口]
      USER[候選人/員工/買家/檢查人員]
      WAF[WAF/限流/回調驗簽]
      UWEB[Next.js 用戶端]
      AWEB[Next.js 統一管理端]
    end
    subgraph 私網[私網應用區]
      API[Node.js 用戶/管理 API 與領域模組]
      QUERY[授權跨庫只讀查詢]
      WORK[Node.js Worker 與 Outbox]
      AUDIT[M5 審計處理]
    end
    subgraph 資料[受限資料區]
      PDB[(personnel_db)]
      CDB[(compliance_db)]
      LDB[(lms_db)]
      SDB[(commerce_db)]
      ADB[(admin_audit_db)]
      OBJ[(物件儲存/WORM)]
    end
    subgraph 外部[外部與共用服務]
      IAM[OIDC/MFA/KMS]
      PARTNER[ReportNOW/支付/電子簽署/監管渠道]
    end
    USER --> WAF --> UWEB & AWEB
    UWEB & AWEB --> API
    API --> PDB & CDB & LDB & SDB & ADB
    AWEB --> QUERY
    QUERY -. 授權只讀 .-> PDB & CDB & LDB & SDB
    API --> WORK & AUDIT
    WORK --> PDB & CDB & LDB & SDB
    WORK --> AUDIT
    AUDIT --> ADB & OBJ
    API --> IAM & PARTNER
    WORK --> PARTNER & OBJ

此圖不預設雲廠商或可用區。同步業務操作由 API 直接訪問相應領域模組及資料庫;Worker 處理投遞、計算與長任務。

06 / 身份與資料權限

同一自然人的多角色關聯

身份/角色關聯與操作資料控制
候選人 → 員工/學員candidate_id 入職後關聯穩定 person_id;學員帳號引用同一人本人僅查本人資料;主管僅查授權下屬。
買家/實際學員/企業管理員buyer_user_id 可不同於 learner_user_id;企業以 enterprise_org_id 管理席位企業管理員只分配本企業席位,不能查看證件、考試答案或內部牌照。
業務管理員HR、合規、LMS、商城經各自領域 API 寫入其業務庫跨庫連線只讀;按角色、組織、案件及字段授權與脫敏。
審計員/監管檢查人員審計查獲授權事件;檢查者只查分配案件只讀視圖及短期下載授權;查詢、導出及敏感存取留痕。

OIDC 僅負責認證;業務資料以內部 person_id、組織及角色有效期控制。ReportNOW 雙向狀態衝突不能按最後寫入覆蓋,須核對來源。

07 / 運行指標

待確認的負載與恢復目標

指標/邊界待確定的輸入與驗收口徑確認責任
心跳與學習負載同時在線學員峰值、每 10 秒心跳峰值、原始事件保存及聚合延遲業務負責人、技術負責人
事件與外部同步Outbox 最大積壓、可接受延遲、重試與死信處理時間、渠道可用性技術負責人、外部接口負責人
可用性與災備目標可用性、RTO/RPO、備份頻率、恢復演練及跨區域限制業務負責人、運維、合規
資料治理香港資料駐留、HKID/教材/學習紀錄/審計快照保留及刪除條件合規、資料保護負責人
外部接口範圍ReportNOW、支付、電子簽署、MPFA 渠道調用及回執格式產品負責人、對應機構接口負責人

未確認的數值不構成性能、災備或外部接口承諾。