前言 其實很久以前就聽過CQRS的名詞,一直以來只會CRUD的我,不了解如何實作,剛好看到最近的鐵人賽,想說可以透過這個機會,逼自己學習這個概念,預計接下來30...
事件驅動設計 既然是事件驅動設計,就試著使用事件來開始分析,以DDD來說,可以使用Event Storming來分析整個故事,不過我只有一個人,所以只好粗略地自...
初步分析要建立的資料結構: 2個主要的aggregate是「讀者」和「書籍」 5個領域事件為 「讀者」:「讀者已註冊」 「書籍」:「書籍已建檔」「書籍已入庫...
昨天完成了簡單 aggreagte實作,先試一下event store能不能work: use book_lib::aggregate::Aggregate;...
先前做Reader結構比較簡單,現在嘗試實作Book: 書籍 pub struct Book { pub id: String, pub tit...
ES裡 aggregate 的狀態由 events的紀錄所決定,所以要能夠從頭建立event,因此自帶audit log功能,若要進從不同時序的追蹤,使用sna...
今天接續使用es,來試試多次book事件的commit是不是都可以正確的作用。 第一個指令:建立書籍檔案 let store = mem_store::MemS...
之前實作的reader有點不完整,調整一下 讀者 const MAX_BOOKS_PER_READER: usize = 5; #[derive(Debug,...
今天測一下昨天寫的redaer事件 先註冊使用者 let mut user = Reader::default(); let service = ReaderS...
先前把reader和book拆為2個aggregate,但一個交易會同時影響2個aggregate。這邊試著用另一個function處理(domain serv...