【问题标题】:Average number of events per event source每个事件源的平均事件数
【发布时间】:2014-02-24 17:04:07
【问题描述】:

我正在使用事件源实现 CQRS 模式,我正在使用 NServiceBus、NEventStore 和 NES(NSB 和 NEventStore 之间的连接)。

我的应用程序将定期检查 Web 服务以查找要下载和处理的文件。 然后该文件将被反序列化为对象(我们称它们为 Orders),并且每个 Order 都应单独且独立地处理。 现在在(文件域)中,我正在为每个名为(OrderExtracted)的订单创建一个事件,并调用 Apply 来引发该事件。

我注意到的是,默认情况下,NEventStore 中保存事件(项目)数量的列大小是 tiny-int,但是在我的情况下,有时会有包含 1000 多个订单的文件! 这是否意味着一个事件源通常不应包含超过 255 个事件?

我需要更改我的设计吗?

【问题讨论】:

  • Tinyint 表示一个提交中的事件数,而不是一个流。平均而言,每次提交只有 1 个事件。
  • 那么如果我的事件源在一次提交中应用了 5000 个事件,是否意味着我的设计有问题?
  • 是的。进入细节有点超出这个媒体的范围,但你可以随时联系我(bittacklr.be

标签: c# nservicebus cqrs event-sourcing neventstore


【解决方案1】:

这是否意味着一个事件源通常不应超过 255 个事件

绝对不是,(技术上)一个流可以有多少个事件没有限制。通常,当您的流开始变大时,您会引入快照以避免一遍又一遍地加载整个流。

我需要改变我的设计吗

我没有使用过 NEventStore,但是,如果 tinyint 是它的建议默认值,我会觉得很奇怪。无论如何,如果它是并且它不适合你,那么改变它......

【讨论】:

  • 谢谢詹姆斯,你的回答很有帮助,但是,当我怀疑我需要更改设计时,不仅仅是因为 NEventStore 列大小限制,而且我觉得它可能是以不同且更简单的方法建模。
  • @NourSabouny 好吧,您没有提到任何原因为什么您觉得可以更好地建模,也没有建议您的潜在方法,所以我只能回答被问到的问题。
猜你喜欢
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
  • 2018-06-28
  • 1970-01-01
相关资源
最近更新 更多