【问题标题】:Reason for replay in Axon AggregateAxon Aggregate 中重放的原因
【发布时间】:2020-05-01 08:56:05
【问题描述】:

我是 Axon 框架的新手当我浏览它时,我了解到在加载聚合类时将重播以前的事件。我想知道重放的必要性及其副作用

-

【问题讨论】:

    标签: spring-boot cqrs axon


    【解决方案1】:

    您的事件始终是您的真实来源。

    为了能够在该聚合之上执行事件,您(可能)需要完成大量验证。为此,您需要知道聚合的“当前状态”。如何做到这一点?重播事件并构建当前聚合。

    您可以在Axon Ref Guide 上获得更多概念。 你也可以阅读Event Sourcing

    我不确定您想了解哪些关于副作用的信息,也许您可​​以进一步扩展。

    【讨论】:

    • 我同意我需要知道当前状态,但是由于事件是时间戳和排序的,为什么我们不使用简单的查询来检索最新状态
    • 我还有一个想法是,由于预测已更新到最新状态,我们甚至可以进行 API 获取调用以检索最新状态,尽管我们有这些选项,为什么我们需要重播?
    • 您的查询端与聚合的“当前状态”无关。这就是 CQRS 的意义所在。根据聚合/事件的数据,您可以有很多不同的预测。
    • 就像 Lucas 在这里指出的那样,关键是你也会做 CQRS,这意味着你有不同的模型来查询和不同的模型来处理业务验证的命令。由于您的查询模型将通过事件进行更新,总是,因此更明智的做法是让两个模型都基于事件总是。这样一来,您将拥有 Lucas 所说的单一事实来源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2020-12-26
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多