Projection
gpt-4.icon
ドメイン駆動設計(DDD)およびイベントソーシング(ES)のコンテキスト内で、「Projection」は特定のイベントストリーム(一連のイベント)を処理し、Read Modelを生成または更新するプロセスやコンポーネントを指します。イベントソーシングはシステムの状態を一連のイベントとして保存する手法であり、DDDと組み合わせてよく使用されます。 Projectionは、これらのイベントを「投影」して具体的な状態表現(Read Model)に変換します。そのため、Projectionは現在の状態を導き出すための「計算」または「変換」のルールを定義します。これは一種のデータマッピングであり、イベントのシーケンス(過去のすべてのイベント)から現在のシステムの状態を導出するためのものです。
たとえば、ショッピングカートのアプリケーションを考えてみましょう。イベントは「商品がカートに追加された」や「商品がカートから削除された」などのアクションを表しています。Projectionはこれらのイベントを使用して、現在のカートの状態(カートに何が入っているか、合計はいくらかなど)を生成します。この生成されたカートの状態が、この場合のRead Modelに該当します。
これまでに積み重なった全てのEventを計算して、現在の状態を生成する