0

DDD では、いつドメイン イベントを使用すればよいのでしょうか? ドメイン イベントを使用するのに適したシチュエーションの推奨事項はありますか? 最終的に一貫性が許容される場合のみですか?

Product、Order、OrderLine を含むオンライン ストアの例で、1 つの Order に複数の OrderLine が含まれているとします。1 つの OrderLine は Product と 1 対 1 の関係にあり、注文を作成すると同時に、Product で使用可能な金額を差し引く必要があります。私が知っている2つの方法があります:

  1. OrderService (アプリケーション サービス) では:

    • 新しい注文を作成し、データベースに挿入します
    • Order の各注文明細について、その OrderLine に関連付けられた Product を取得し、Product.UpdateQuantity() を呼び出します。
    • すべての製品をデータベースに保存
    • 注: 私には、アプリケーション サービスがここでほとんどの作業 (注文の作成、製品の取得、製品の更新) を行っているように思えますが、これは許容できますか?
  2. OrderService:

    • 新しい注文を作成し、データベースに挿入します
    • イベント OrderCreated を生成する
    • トリガーされたイベント ハンドラー、Product.UpdateQuantity() を呼び出す
    • 注: 商品の数量はすぐに更新されるとは限りません

実生活では、どちらの方法がより好まれますか? どちらの場合も、製品数量の同時更新を処理する方法は? 数量がチェックアウト画面を表示した時間と異なる場合、ユーザーに失敗を通知しますか?

どうもありがとう

4

1 に答える 1