问题标签 [neventstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
721 浏览

cqrs - CommonDomain/EventStore 接口获取

我想通过它实现的接口访问我的聚合根:

我需要告诉 CommonDomain 或 EventStore 什么来完成此操作?我相信我的 IConstructAggregates 接收到存储事件的聚合的实现类型。我是否需要保留自己的 ID 地图。

例如,假设我有这些 agg 根:

我已经保存了一个具有 'idFromAggRoot1' 的 aggregate1 实例。现在我想这样获取:

既然 IInterface1 有两个实现者,我怎么知道以后应该创建什么?聚合根1?聚合根2?接口1?Activator 会在这里轰炸,所以我知道我需要实现 IConstructAggregates 但想知道是否还有其他描述符可以告诉我原始提交 agg 根类型是什么。

0 投票
1 回答
196 浏览

azure-sql-database - 如何配置 EventStore 以使用 SQL Azure 作为存储?

我正在寻找如何配置 Jonathan Oliver 的 EventStore 以使用 SQL Azure 的示例。任何帮助,将不胜感激。谢谢。

0 投票
1 回答
352 浏览

cqrs - JOlivier EventStore 的 StreamRevision 和 CommitSequence 的区别和用法?

在查看 JOlivers“EventStore”时,我发现如果您只提交 1 个事件,StreamRevision 和 CommitSequence 是相同的。它是用于选择事件的 StreamRevision。

假设我首先创建了一个聚合 1 个事件。之后,committed 10 事件将使我的 SQL 数据库表看起来像这样(简化):

我有两个问题源于此:

  1. 这是StreamRevision 和 CommitSequence 之间区别吗?

  2. 该商店公开了一个“GetFrom”方法,该方法采用“minRevision”和“maxRevision”。使用上面的数据,如果我请求 minRevision=4 和 maxRevision=8 ,这将如何工作?不应该是“minSequence”和“maxSequence”吗?

谢谢。

维尔纳

0 投票
0 回答
1116 浏览

cqrs - NCQRS 与 JOliver EventStore

有人评估过 NCQRS 和 JOliver 的 EventStore 吗?两者之间是否有显着优势,或者它们是否针对不同的受众?

我所看到的:

NCQRS 内置了对 NServiceBus 的支持。不确定受支持的 NSB 版本,但 NSB 的许可更改使这成为我项目的一个问题。不要以为我想永远被 NSB 2.1 困住。我可能会更多地关注 MassTransit 或 RSB。NCQRS 似乎也有相当多的“入门”帮助,对于像我这样的新手来说,这是值得赞赏的。

EventStore 似乎具有总线机制的挂钩,但没有内置实现(可能是错误的)。EventStore 似乎在 3.0 版本中有相当多的近期活动,但除了一些简短的代码示例和我发现的播客之外,似乎没有太多帮助,尤其是对初学者来说,除了筛选堆栈溢出或组。

如果有现有的比较,请指出我的方向。如果我上面的假设不正确,请纠正我。

0 投票
1 回答
1030 浏览

cqrs - 内存中的 NEventStore 和 Sqlite

我正在尝试使用 JSON 序列化和在内存模式下运行的 Sqlite 对 EventStore 持久性进行单元测试。我在 EventStore 初始化期间收到“没有这样的表:提交”异常。我假设这是因为 EventStore 以某种方式关闭连接并打开一个新连接,导致它看到一个新的内存中 Sqlite 实例(没有提交表)。有什么办法可以使这项工作?

0 投票
1 回答
552 浏览

event-sourcing - EventStore 3.0 和发布事件

那么通过 Event Store 3.0 发布事件的推荐方式是什么?假设我像这样连接 EventStore:

其中“DispatchCommit”如下所示:

我可以看到已提交的事件按预期触发。但是,ES 2.0 将 IContainer 传递到消息调度程序中,我可以解析总线实例并发送事件。我应该使用实现 IDispatchCommits 的类吗?

有任何想法使用 ES 3.0 的人吗?

0 投票
1 回答
198 浏览

cqrs - NEventStore SqlPersistence GetFrom 分页

我在我的 EventSTore 中流式传输所有事件:

将分页保持在默认值 128 会限制在 2989 处获取的事件数量。当我将分页大小增加到 9000 时,我会按预期获得所有事件(大约有 7K 事件)。

确保我收到所有事件的最佳方法是什么?即重建视图模型时?

顺便说一句,我仍在使用 ES 2.0 谢谢!

0 投票
3 回答
1439 浏览

transactions - 使用 JOliver EventStore 更新多个聚合

我有一个关于使用JOliver 的 Event Store在单个事务中更新多个聚合的问题。据我了解,每个聚合都应该有自己的事件流。现在,虽然许多命令处理程序只会加载单个聚合并只更新该聚合(即为这些聚合保存事件),但我可以想象会有需要更新多个聚合的命令处理程序。当然,我想以交易的方式做到这一点。

但是,我不知道如何使用 Event Store 做到这一点。通过调用CommitChanges()事件流来存储事件。如果我们有多个要更新的聚合,将有多个事件流,因此会多次调用CommitChanges(). 使该事务具有事务性的唯一方法是将其包装在 中TransactionScope,但这没有多大意义,因为底层存储技术可能不支持事务。所以我最终得到了这段代码,这绝对不是我想要的:

这让我觉得我完全错过了应该如何使用 Event Store 的一些东西。有人可以帮我吗?非常感谢!

0 投票
1 回答
174 浏览

cqrs - 在 JO 的 CommonDomain 中调度 AR 版本及其事件

我正在寻找将我的聚合的当前版本传达给读取模型的正确方法。目前我看到的唯一可能性是执行以下操作:

我不喜欢它,因为我认为 Aggregate 应该自动将 AR 版本分派给所有读取端事件处理程序。

我还有其他方法可以做到这一点吗?

0 投票
2 回答
1308 浏览

cqrs - EventStore 事件的部分排序和其他功能

我正在尝试将EventStore评估为服务器软件内部的可靠排队机制。

MSMQ 作为替代方案失败了,因为它不能支持部分排序​​,消息“对话”中的有序消息。并且由于它的 4MB 消息大小限制(可以通过部分排序来克服)。SQL Service Broker 确实支持部分排序​​,但是以编程方式设置和管理是一件麻烦事。

由于 EventStore 的文档确实很少,有 EventStore 经验的人可以提供以下帮助吗?

  • EventStore 是否支持事件的事务处理——也就是说,如果处理失败,出队是否可以回滚?
  • 在不同的线程、进程或机器中有多个读取器,EventStore 是否强制每个事件被分派(?)到只有一个读取器(一次,可能在事务期间)
  • 假设上述情况是可能的,不同“对话”中的事件是否可以按任何顺序同时阅读,而同一对话中的消息可以单独按顺序阅读?
  • 我读到 EventStore 基本上是“至少一次”交付。是否有可能使用某些存储提供商来确保“精确一次”交付?
  • “毒”事件如何处理?处理期间出错的事件。也许错误本质上是暂时的,可以重试。也许它本质上是永久性的,需要行政干预。
  • 如有必要,是否可以手动操作 EventStore 存储?可以在其他读者继续阅读的同时完成吗?

(我读到存储引擎中的事务不是必需的,但我仍然使用事务的语言来表示在 EventStore 级别替换事务的任何内容。如果在从事务切换到任何内容时有关键的功能后果,请评论它们.我不需要马上了解每一个方面,只需要希望能有更多的时间去尝试。)