從零開始設計證券公司核心系統(2):高階架構設計

從零開始設計證券公司核心系統(2):高階架構設計
Photo by PiggyBank / Unsplash

在上一篇文章中,我們了解了證券公司核心系統的基本概念與模組。
這次,我們將深入探討如何設計一個 高階架構圖,並了解各個模組如何協同工作,達成無縫的交易體驗。


設計證券公司核心系統的高階架構

證券公司的核心系統設計,涉及多個模組的協作,
每個模組都需要精確地互動來確保交易的準確性與即時性。

以下是我們的系統高階架構設計:

系統架構總覽

  1. 客戶端(Client):客戶通過交易平台(如手機 App 或桌面端)提交交易指令。
  2. 下單系統(Order Entry System):負責接收來自客戶的交易指令,進行初步檢查與風控校驗。
  3. 風控系統(Risk Management):在指令發送之前,進行資金與風險檢查。
  4. 下單轉送系統(Order Gateway):將有效的委託單送到交易所或流動性提供者。
  5. 交易所/流動性提供者(Exchange/Liquidity Provider):外部交易所處理委託單,並進行撮合。
  6. 成交回報系統(Trade Reporting):收到來自交易所的成交結果,並將其傳回給客戶端與內部系統。
  7. 清算交割系統(Clearing & Settlement):根據成交結果,完成資金與資產的交割與清算。
  8. 帳務系統(Account System):更新客戶的資金與證券餘額。
  9. 監控與營運系統(Monitoring & Ops):負責監控整體系統的健康狀況,並能即時響應系統異常。

系統架構圖

以下是我們的高階架構圖,描繪了各個模組間的數據流和交互過程:


(插圖:這裡可以放置一張高階架構圖,顯示各模組之間如何相互連接和交互。)


各模組間的互動

  1. 客戶端與下單系統的交互
    • 客戶通過交易平台發送訂單(例如:買入股票、賣出股票)。
    • 訂單將先經過下單系統,進行格式檢查。
  2. 下單系統與風控系統的交互
    • 下單系統會將訂單送至風控系統,檢查是否符合風險控制規範(如保證金、信用額度、最大交易量等)。
    • 若風控檢查通過,訂單會被標記為「待轉送」。
  3. 下單轉送系統的作用
    • 經過風控檢查的訂單會透過下單轉送系統送至外部交易所或流動性提供者進行撮合。
    • 這個過程可能會涉及到交易所的 API 或 FIX 協議進行交互。
  4. 交易所回報與系統更新
    • 當交易所撮合成功後,會返回成交結果(如成交價格、成交量等),系統需即時處理並通知客戶。
    • 這個結果會被清算交割系統用於資金與股票交割。
  5. 清算交割與帳務系統的協同
    • 在交易成功後,清算交割系統負責根據成交結果計算應付應收金額,並安排資金與股票的交割。
    • 同時,帳務系統會根據清算結果更新客戶資金與證券餘額。
  6. 監控系統的作用
    • 監控系統會全程監控交易流程中的每一個階段,確保系統穩定運行,及時發現並排除異常。

高可用性與冗餘設計

設計證券公司核心系統時,高可用性(HA)與冗餘設計非常重要。
核心系統必須保證在任何情況下都能提供穩定服務,因此我們需要設計:

  1. 多區域部署
    • 系統必須支持跨區域部署,避免單一數據中心故障導致整個系統宕機。
  2. 主從複製
    • 所有重要數據(如訂單數據、交易紀錄等)需進行主從複製,確保數據的一致性與可用性。
  3. 自動故障切換(Failover)機制
    • 在主服務器出現故障時,必須能夠自動切換到備用服務器,確保業務不中斷。

小結

在這篇文章中,我們介紹了證券公司核心系統的高階架構設計,並畫出各模組間的交互關係圖。
接下來,我們將深入討論「接單與下單轉送系統」的設計,並且會提供更具體的技術細節。