【问题标题】:Event Flow and EventSourcing事件流和事件溯源
【发布时间】:2020-05-27 07:57:57
【问题描述】:

在决定我不想创建自己的 Event store 和 Event Hydration 实现后,我正在尝试检查 Eventflow 以在 POC 上使用。 Eventflow 看起来是个不错的选择。我目前使用 Mediatr 和事件流来保持最小化,我会使用它的命令处理和事件发射。

我在文档“在像 EventFlow 这样的事件源系统中,聚合根数据存储在事件中”中遇到了一行问题。

这是否意味着每次将事件存储在数据库/事件存储中时,它也会存储当前聚合及其状态?

为什么需要将聚合与事件一起存储?在加载聚合时应用事件应该会恢复状态,对吧?

还相信如果这样做,事件本身的重量会相当轻,而聚合数据存储会使其变得庞大。

它有什么用途?

我是否理解错误?

链接 https://eventflow.readthedocs.io/Aggregates.html 谢谢,

三月

【问题讨论】:

  • 我建议尝试自己编写这些东西。它不需要创建一组抽象来处理事件溯源的基础知识。例如,您可以在我的 repo github.com/alexeyzimarev/ddd-book 中找到一些代码,例如第 11 章或第 1 章。

标签: c# cqrs event-sourcing event-flow


【解决方案1】:

以下是进一步研究的结果。 我做了一个小型测试应用程序,并且能够确定该事件是在没有汇总信息的情况下被序列化的。可能是“在像 EventFlow 这样的事件源系统中,聚合根数据存储在事件中”的意思。
它存储 AggregateId、AggregateName 但 Data 仅包含来自事件的反序列​​化信息。

我现在看到的唯一可能超出所需数据的是元数据。我不确定它在哪里使用,特别是使用 http 标头其他数据数据已经存储在同一记录的其他字段中(如序列号和聚合 id)。

我会建议 eventflow 团队在他们的文档中更清楚地说明这一点。它将帮助像我这样的新手。可以添加一个存储中事件数据的示例。

我会留下这个答案而不接受它,以防万一有更好的信息有更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2019-01-31
    • 2019-02-03
    • 2017-04-06
    • 2021-06-24
    相关资源
    最近更新 更多