1. 三維技術架構
    1. 運行
    2. 分析
    3. 控制
  2. 十個步驟
    1. 場景分解
      1. 四層環境
        1. 用戶、前端、後端、外部
      2. 八個象限
        1. 操作、資料
    2. 資料建模
      1. 找出資料和資料之間的關係
      2. 針對資料進行建模
    3. 一致性的資料聚合
      1. 對資料模型做聚合體設計
      2. DDD的Aggregate 原則
        1. Aggregate Root 的 Entity 必須要在 Bounded Context 中有唯一標示性,它的 ID 不能與其他 Aggregate Root 重複
        2. Aggregate Root 負責檢查邊界內所有固定規則
        3. Aggregate 外的物件不能引用除了 Aggregate Root 之外的任合內部物件
        4. 根據上一條規則,只有 Aggregate Root 才能直接透過資料庫查詢來獲取。內部的其他物件都要透過 Aggregate Root 才能取得
        5. Aggregate 內部物件可以引用其他 Aggregate Root,但僅能引用該 Aggregate Root 的 ID
        6. 刪除操作必須一次刪除 Aggregate 邊界內的所有物件
        7. 當提交對 Aggregate 內部的任何物件的修改時,整個 Aggregate 的固定規則都要被滿足,意指一次就要存整個 Aggregate 進去
    4. X軸(業務)分解
      1. 「前端」分解為UI和App兩層
      2. 「後端」分解為API、服務、SPI三層
    5. Y軸(技術)分解
      1. 把前一步驟的五層,各自獨立分解為業務邏輯層、技術API層、技術服務層、技術SPI層
    6. 處理一致性失敗
      1. 當微服務間資料一致性出問題,可以先利用「沖正」的方式來處理,如果「沖正」失敗,人為介入處理
      2. 同時考慮這些後續處理的比例和成本是否過高
    7. 設計訊息瀑布
      1. 微服務之間是透過訊息溝通的,訊息量可能非常大,甚至衝擊系統穩定,透過訊息瀑布機制來消除
      2. 訊息瀑布中的訊息不要逆流
    8. 設計業務大數據
      1. 業務數據,在設計微服務時,要同時設想要如何運用這些數據,找出其中業務價值
    9. Z軸(維運)分解
      1. 分解出來的業務(5)x技術(4)共20 個象限的微服務,在各自分解為程式、容器平台、作業系統、電腦、網路
    10. 設計維運大數據
      1. 在設計微服務的時候,同步設想要如何運用這些數據,找出其中的維運價值