9

私は CQRS/ES のアイデア全体に頭を悩ませようとしており、現在のアプリケーションに実装する方法の概念実証と技術仕様を書くことを考えています。

問題のある操作 (それらを CQRS/ES にマップする方法に関して) は、ファイル インポートによる複雑な記事データの一括更新です。データ ファイル内の単一の行は、記事グループ、記事、ヘッダー、ユニット、およびプロパティに拡張されます。バイヤーの品揃えをサプライヤーの品揃えにリンクするファイルのロード、および品揃えの一部または全体のエクスポート。

記事のインポート BC (Excel ファイルまたは他のグリッド ファイルを読み取る) をモデル化する最良の方法は、インポートされたデータの 1 行を集計し、インポート全体が集約ルートになります。そうすれば、ファイルを解析した後、インポート集計を作成し、行ごとにその行をインポートに追加するだけで済みます。これにより、BC のイベント ストアにイベントが保存され、記事管理 BC がサブスクライブするイベントが発行されます。これは理にかなっていますか?

現在のシステムでは、インポートは単一の長時間実行トランザクションで実行されます。長時間実行は、インポートされたデータの量と特定のユーザーに既に存在するデータの量に応じて、5 ~ 40 分として読み取られる必要があります (データは以前にインポートされたファイルおよび現在のデータと比較されるため)。操作の途中で失敗すると、現在、操作全体がロールバックされます。それは CQRS/ES でどのように機能しますか?

4

1 に答える 1

3

CQRS/ES とのちょっとしたやり取り。非常に単純なアプローチは次のとおりです。

  • あなたの仕事の単位を見つけ、
  • これらのユニットの昇順識別スキームを考案し、
  • 元の入力をこれらの作業単位に変換し (失敗する可能性が低く、高速)、途中で ID を割り当てます。
  • 次に、各作業単位をトランザクションとして処理し、最後に処理された作業単位 ID を各トランザクションの一部として更新します (並列処理する場合は複数)。
  • 障害が発生すると、最後に処理された作業単位から、自動的に、または ops が青信号を出した後に再開します。

劣ったIMOであるすべての背後にイベントソースまたは状態ベースのモデルがあるかどうか。

于 2013-02-17T11:26:11.537 に答える