私は CQRS/ES のアイデア全体に頭を悩ませようとしており、現在のアプリケーションに実装する方法の概念実証と技術仕様を書くことを考えています。
問題のある操作 (それらを CQRS/ES にマップする方法に関して) は、ファイル インポートによる複雑な記事データの一括更新です。データ ファイル内の単一の行は、記事グループ、記事、ヘッダー、ユニット、およびプロパティに拡張されます。バイヤーの品揃えをサプライヤーの品揃えにリンクするファイルのロード、および品揃えの一部または全体のエクスポート。
記事のインポート BC (Excel ファイルまたは他のグリッド ファイルを読み取る) をモデル化する最良の方法は、インポートされたデータの 1 行を集計し、インポート全体が集約ルートになります。そうすれば、ファイルを解析した後、インポート集計を作成し、行ごとにその行をインポートに追加するだけで済みます。これにより、BC のイベント ストアにイベントが保存され、記事管理 BC がサブスクライブするイベントが発行されます。これは理にかなっていますか?
現在のシステムでは、インポートは単一の長時間実行トランザクションで実行されます。長時間実行は、インポートされたデータの量と特定のユーザーに既に存在するデータの量に応じて、5 ~ 40 分として読み取られる必要があります (データは以前にインポートされたファイルおよび現在のデータと比較されるため)。操作の途中で失敗すると、現在、操作全体がロールバックされます。それは CQRS/ES でどのように機能しますか?