Domain Event
データ構造ではなく、ビジネスイベントやワークフローに注目する
どんな業務も何かしらのevnetを基点に起きる
e.g. メールを受け取ったら、◯◯する
e.g. 毎日10時になったら、◯◯する
こういったeventのことをDomain Eventと呼ぶ
業務は、eventの連鎖である
Domain Eventに着目することで、そのdomainのビジネスの理解を深めていく
Domain Eventは何によって引き起こされるか
DDDのCommand
別のDomain Event
スケジューラやモニタリングシステム
Domain Eventを洗い出す方法の例
Event Stoming
参考
/mrsekut-book-97816805025/022
/mrsekut-book-97816805025/023 (具体例)
/mrsekut-book-477419087X/117~
「コト」と呼んでるものがDomain Event
#WIP
https://www.dondakeshimo.com/posts/2024-05-06-domain-event-design
Domain Eventがデータを更新するタイミングになる?
updateするきっかけを列挙できると良い
Domain Eventは、決して変更されない
Dmain Event自体はデータとしてimmutable
事実
一つの日時しか持たない
複数の日時が必要ならeventの分け方としておかしい
ちょっと別の話だが
コトを表すtableはupdateしてはいけない
これがimmutable data model
/mrsekut-book-4297104083/026 (第2章 失われた事実)
これはDBの話だけど、具体例をイメージしやすいかもしれない
https://codezine.jp/article/detail/10392
https://yoskhdia.hatenablog.com/entry/2016/09/29/214318
/mrsekut-book-477419087X/119
業務活動で起こる事象
ヒトとモノの関係として出現する
時間軸に沿って明確な前後関係を持つ
対象、種別、時点をデータとして持つ
対象
何についての発生した事象か
種別
どういう種類の事象か
時点
いつ起きた事象か
e.g.
注文
商品(モノ)とuser(ヒト)の関係を表現したもの
Reduxのactionはコトと言えそうmrsekut.icon
事象を溜めて、未来過去に移動できる感じ
あれはOOPではないけど、action creatorが発行するobjectというコトデータを生成している
例えば、「userをfollowする」という行為もコトデータ