iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Software Development

當rust 遇上 cqrs & es系列 第 2

D2 Event Driven Design

  • 分享至 

  • xImage
  •  

事件驅動設計

既然是事件驅動設計,就試著使用事件來開始分析,以DDD來說,可以使用Event Storming來分析整個故事,不過我只有一個人,所以只好粗略地自己想像一下:

我打算使用圖書借閱管理系統,概略的先畫出初版的長相:

events of book borrowing

事件

  • 書籍已借出
    • 書籍Id, 讀者Id, 借閱日, 到期日
  • 書籍已歸還
    • 書籍Id, 讀者Id, 借閱日, 到期日, 歸還日
  • 新書已入庫
    • 書籍Id, 書籍資訊(ISBN)
  • 讀者已註冊
    • 讀者Id, 讀者資訊(名稱)

聚合

  • 讀者
    • Id, Name
  • 書籍
    • Id, ISBN, Copies

命令

  • 借書
    • 讀者Id, 書籍Id, 借閱日
  • 還書
    • 讀者Id, 書籍Id
  • 書籍建檔
    • 書籍資訊(ISBN, 書名, 作者)
  • 新書上架
    • 書籍Id, 數量
  • 讀者註冊
    • 讀者資訊(姓名, email)

查詢

  • 書籍查詢
    • 書籍Id, 書籍資訊, 庫存數量
  • 讀者狀態查詢
    • 讀者Id, 讀者資訊, 借閱清單

上一篇
D1 拉開序幕
下一篇
D3 實現基本資料結構(1)
系列文
當rust 遇上 cqrs & es30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言