【问题标题】:CQRS/EventStore - changing two aggregatesCQRS/EventStore - 改变两个聚合
【发布时间】:2012-02-26 21:11:03
【问题描述】:

我有一个更新两个聚合的命令。由于聚合路由是事务边界,我有一个命令对第一个聚合执行 repository.Save() 操作,然后我触发另一个命令(从第一个命令中)作用于第二个聚合。每个 Save() 操作都会启动其 Event-Store 事务并提交更改,然后发布它们。

首先这是正确的,即让一个命令通过另一个命令通知另一个聚合?

我在 Mark Nihjof 的代码中注意到他使用事件处理程序,这很好,因为您可以将事件处理程序注册到同一个事件。我尝试使用 J Oliver 的 Event-Store 执行此操作,但 IDispatchCommit 中的 commits.events 在处理第二个聚合值时引用了第一个聚合值。这导致了一些奇怪的错误。

那么我应该找到一种方法来使用 EventHandlers 或在命令中触发命令好吗?

京东

编辑 - 我已经将我的线路切换到使用 .UsingAsynchronousDispatchScheduler() 并且现在允许注册的事件触发多个事件处理程序,该事件处理程序反过来触发另一个聚合上的命令,它似乎工作。那么,这是不是使用命令触发命令的正确方法?

【问题讨论】:

    标签: cqrs event-sourcing


    【解决方案1】:

    我认为给这只猫剥皮的方法有一百万零一种。我不确定从事件处理程序触发命令是否可行,在这种情况下我必须命令处理程序响应相同的命令。

    我确实发现 documently 非常适合作为参考应用。你看过那个吗?

    【讨论】:

    • 谢谢。周末会读一读。那么,如果我无法从第一个聚合根事件处理程序触发另一个命令,我该如何更改第二个聚合?
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多