事件采购 - Domain Logic适合哪些地方?

TBD*_*TBD 6 domain-driven-design business-logic event-sourcing

我一直在观看Greg Youngs关于事件采购的讨论,但我对业务逻辑所处的位置感到困惑.一个简单的例子:

1) Shopping Cart Created 
2) Item Added
3) Item Added
4) Promotional Code - 20% Off
Run Code Online (Sandbox Code Playgroud)

促销代码是根据购物车项目和作为事件存储的结果计算的.我理解"PromotionalCodeAddedEvent"可能有意义,但数学在哪里发生?我在想:

public void AddPromotionalCode(PromotionalCode code)
{
    //perform calculation against shopping cart items. 
    //if valid
    ApplyChanges(cmd);
}
Run Code Online (Sandbox Code Playgroud)

然后结果不会在任何地方结束,并且读取模型必须执行计算.

我不完全理解这个概念,任何帮助都会很棒.

Ale*_*ger 1

例如,您可以引发第二个事件,例如PromotionalCodeApplied包含计算结果的事件。

然后,读取模型只需使用预先计算的结果。