2024-12-10 Event Sourcing で集約の捉え方が変わったという同僚の話
同僚が「 Event Sourcing を適用して集約の捉え方が変わった」という旨のことを書いていて印象的だった。
State を中心とするか Event を中心とするかで、集約の仕事は変わるところがある。
State を中心とすると、現在の State に Command を適用し、次の State を保持する。
Event を中心とすると、過去の Event (現在の State) と Command に基づいて、次の Event を発行する。
Command -> Vec<Event> -> Result<Vec<Event>, Error>
のようなイメージ。
State もすべてを持つ必要はなくて、あくまでも次の Event の発行を判断するのに必要な情報だけでいい。
「 (Event が) 流れているイメージ」とも言っていたので、読書会を実施した『関数型ドメインモデリング』のような処理のパイプラインのイメージに近づいてきたのかもしれない。
彼の気持ちはともかく、ぼくはぼくのまいた種が育っていて嬉しい。そして、ぼくはこういう新しい捉え方にたどり着いたときの感動をチームで共有したい。
今日のコミット。