在事件採購,你存儲所有的個人域事件已經發生了一個總結例如,稱爲事件流。隨着事件流你還存儲一個流版本。流版本在事件採購
如若版每個域事件有關,或者它應該事務變化(又名命令)有關?
實施例:
我們當前的事件存儲的狀態是:
aggregate_id | version | event
-------------|---------|------
1 | 1 | E1
1 | 2 | E2
一個新命令在骨料1執行該命令產生兩個新事件E3和E4。
方法1:
aggregate_id | version | event
-------------|---------|------
1 | 1 | E1
1 | 2 | E2
1 | 3 | E3
1 | 4 | E4
用這種方法樂觀併發可以通過存儲機制使用唯一索引,但重播事件,直到3版本可以離開合計/系統處於不一致的狀態來完成。
方法2:
aggregate_id | version | event
-------------|---------|-----
1 | 1 | E1
1 | 2 | E2
1 | 3 | E3
1 | 3 | E4
重播事件,直到3版本離開合計/系統處於一致的狀態。
謝謝!
我還在研究兩種方法的優缺點。還要檢查在IDDD和其他DDD書籍中使用哪種方法。 – martinezdelariva