事件溯源與命令查詢責任分離架構實作班

最新梯次

台北班:2023年10月28、29日(六、日) /09:30-16:30

事件溯源(Event Sourcing)與命令查詢責任分離(CQRS)架構是開發微服務(Microservices)與雲端原生系統(Cloud Native System)不可或缺的基本與進階技術。本課程在領域驅動設計(Domain-Driven Design;DDD)與整潔架構(Clean Architecture)的背景之下,首先介紹如何實作事件溯源的聚合(Aggregate)與Repository。接著探討CQRS架構帶來的簡化設計、提升效能與高擴展性等好處,並實作兩種不同的讀取模型。Event Sourcing + CQRS + DDD + Clean Architecture,讓您四種願望一次滿足。

課程內容:

本課程包含兩個主題:事件溯源 (Event Sourcing)命令查詢責任分離(Command Query Responsibility Segregation;CQRS)。課程首先介紹在採用領域驅動設計 (Domain-Driven Design;DDD)與整潔架構 (Clean Architecture)的軟體系統中,如何讓聚合(Aggregate)與存取聚合的Repository支援事件溯源(Event Sourcing)。在練習範例中我們介紹兩種不同的資料庫:支援純事件溯源的EventStoreDB與關聯式資料庫PostgreSQL,以滿足不同學員在工作上的需求。

接著課程介紹CQRS架構的三大優點:Simplicity、Scalability與Speed,並深入探討套用CQRS的設計取捨。透過實作練習我們分別在PostgreSQL與EventStoreDB投影出兩種不同的讀取模型。

 

課程大綱

  • 事件驅動架構的四種不同層級
    • Event Notification
    • Event-Carried State Transfer
    • Event Sourcing
    • CQRS
  • Event Sourcing
    • 保存狀態方法:State Sourcing, Event Sourcing, State Sourcing + Transactional Outbox
    • 保存狀態單位:Aggregate
    • 保存狀態設計模式:
      • Repository
      • 支援Event Sourcing與Outbox儲存方式的Repository架構設計
    • 實作練習
      • ESDB
      • Outbox
      • Event Type Mapping
      • Projection
      • Optimistic Locking
  • CQRS
    • 定義
    • CQRS的優點
      • Simplicy
      • Scalability
      • Speed
    • 不同層級的讀寫分離
    • Eventual consistency, event ordering, at least once, idenpotent, internal vs external event
    • Write Model與Read Mode的依賴方向
    • 實作練習
      • Read model in PostgreSQL (將read mode存成JSON)
      • Read mode in EventStoreDB (使用Projection功能)
  • 進階議題
    • Snapshot (快照)
    • Event versioning
      • weak schema and schema registry
    • CQRS without event sourcing
  • 回顧與討論

***

課程效益

  • 徹底了解事件溯源與的命令查詢責任分離的真意。
  • 扎根領域域驅動設計與Clean Architecture的核心實作能力。
  • 獲得立即可用的高品質參考範例。
  • 奠定實作微服務架構所需之基礎能力。
  • 透過讀寫分離加速系統效能。
  • 增加嘴砲功力 XDD。

專業師資陳建村 (Teddy Chen)

  • 泰迪軟體創辦人,從事敏捷開發顧問、教育訓練、軟體工具導入等服務。
  • 台北科技大學機電科技研究所(資訊組)博士班畢業,有二十年以上軟體開發經驗。
    曾擔任程式設計師、技術總監、敏捷專案經理、軟體架構師、敏捷顧問、敏捷課程講師。
  • Teddy從2001年接觸與實踐敏捷方法XP,在2008年開始帶領他的第一個Scrum團隊。2012年成立泰迪軟體,擔任不同產業的敏捷教練,顧問與培訓課程講師至今。
    Teddy同時也在北科大資工所擔任兼任助理教授,講授「敏捷與精實軟體開發」以及「軟體架構」。
  • 2012年6月出版暢銷書「笑談軟體工程:敏捷方法的逆襲」,獲iThome週刊推薦為2012年iT人必看好書。
    2014年5月,出版「笑談軟體工程:例外處理設計的逆襲」。
  • 2007年起,Teddy經營部落格「搞笑談軟工」至今,閱讀人次破四百萬。內容涵蓋軟體工程、敏捷開發方法、設計模式、軟體測試與重構、例外處理等內容。

 

課程資訊


台北平日班:2023年10月28、29日(六、日)

時間:09:30~16:30,共十二小時
地點:近台北火車站

費用

原價:$34,000元
早鳥優惠: NT$27,900/人,2023年10月1日前報名。
泰迪之友票:$27,000 元
2人團報,$26,900 元/人
費用已包含:發票、教材、午餐、茶水。

 

2023年最新開課班次:

  • 2023年10月28、29日 (六、日)

 

注意事項

  • 報名方式:先填寫線上報名表,確認開課後將收到匯款通知,再行繳費即完成報名。
  • 主辦單位將於開課日三天前以e-mail寄發上課通知,若未收到通知者請來電確認。
  • 已完成繳費學員若因故無法上課,在開班日前一日申請退費者,退還已繳學費全額。開班日當天到課程進行1/3申請退費者,退還已繳學費四成。課程進行超過1/3之後無法上課將不予退費。 未達開班人數則延期或全額退費。
  • 結業證書需全程出席方可獲得。
  • 開課單位保留是否接受報名之權力。如遇天災或其他不可抗拒因素導致原訂日期無法開課,開課單位保留修訂日期權利。