前の記事で、 state ソーシングスタイルと、event ソーシングスタイルについて書いた。 単純にいえば、メモリ上でオブジェクトを操作する順番、そして、データベース操作の順番の問題。 state ソーシング state ( 現在の状態 ) オブジェクトの更新が最初。 必要が、あれば、audit ログ(監査記録)とか、history ( 履歴 ) オブジェクトを作成する。 テーブルであれば、state テーブルを update すると、トリガー で、監査テーブルにレコードを insert したり、history テーブルに insert する、というやり方。 顧客の連絡先、例えば、住所を変更したら、住所変更ログを書いたり、住所変更履歴を作成する、というパターン。 event ソーシング ビジネスの事象オブジェクトを作成する。 そのオブジェクトが、しかるべき、state オブジェクトを変化