问题标签 [eventstoredb]

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 回答
603 浏览

java - 如何以编程方式(java 或 http)在 GetEventStore 中创建投影

背景

我在一个项目中使用 EventStore (来自geteventstore.com )。到目前为止,我已经实现了应用程序的写入端。也就是说,我可以读取和写入给定聚合的事件。

现在我在阅读方面,需要订阅一个流。我正在使用 java api,一切都在这里工作。

现在的问题

流不存在...我必须创建一个投影,将来自不同流的事件聚合到我的读取模型的单个流中。

如何通过 api 创建投影?最好使用 java api,但 http api 也可以。

详细说明

由于预测是读取模型获取所需确切事件的方法,因此随着业务需求的变化,将创建新的预测。因此,我的想法是 readmodel 服务将在启动时检查并可能创建它需要的投影。

在启动服务之前手动创建投影是不可接受的。这就像手动迁移你的 sql db。

0 投票
1 回答
235 浏览

nservicebus - 如何创建使用不同传输的单个 NServiceBus 端点?

背景

我们正在尝试在我们的公司中引入一种新的架构模式,并正在考虑使用服务总线进行事件溯源的 CQRS。我们目前用于开发 POC 的技术是 NServiceBus、Event Store 和 MSMQ。我们希望在 NServiceBus 中使用两个不同的传输定义单个端点,MSMQ 用于我们的命令,而 Event Store 用于我们的事件。我们企业的当前状态不允许我们现在轻松地将所有内容切换到 Event Store,因为我们对使用 MSMQ 的旧应用程序进行了大量投资,这也是我们考虑混合方法的原因。

问题

是否可以创建使用不同传输的单个 NServiceBus 端点?如果是,如何?如果没有,有什么替代方案?

0 投票
1 回答
56 浏览

eventstoredb - eventstore 3.6 的 http api 在哪里?

是否有指向 eventstore 3.6 的 http 端点的链接?我正在查看网站上提供的文档,但我似乎找不到它。

0 投票
0 回答
337 浏览

xamarin - 使用 Xamarin 存储域事件

我正在寻找一种在移动设备上使用 Xamarin 存储事件的方法。

在服务器上有我可以使用的事件存储,但我不知道 Xamarin mobile 有什么可能。

(例如https://geteventstore.com/

事件商店说它可以在单声道上运行,但我不确定这是否意味着 xamarin 移动。

我想我可以使用 sqlite 数据库来存储事件,但我对这一切都很陌生,我不确定它是如何工作的。

0 投票
1 回答
1017 浏览

c# - MongoDB 的 Event Store 订阅服务

我想知道是否可以通过创建订阅Mongo服务Get Event Store?也许我的措辞不正确,但让我解释一下。我目前有一个将事件写入Mongo Databaseusing的过程NEventStore。我想做的是有一个订阅服务,它订阅一个Streamin Mongo

无法在互联网上找到任何关于此的信息,但这可能吗?简而言之,我的问题也许是您可以将两者混合并匹配在一起,还是为了做到这一点,我必须将我的事件写到eventstore而不是Mongo?也许,我正在解决这个错误,还有其他选择吗?

我可以看到我的事件正在写入,但是它无法触发EventAppeared。目前所有这些都在我的机器上本地完成。

我尝试创建一个精简的应用程序来执行此操作:

  1. 使用以下命令创建订阅

    /li>
  2. 我通过 NEventStore 将事件写入我的 mongo 数据库

    /li>
0 投票
3 回答
1808 浏览

c# - 在 CQRS“架构”中使用 EventStore 使得不需要使用消息总线?

我对范式和相关架构(例如 CQRS)非常陌生。我开始了一个我认为适合这种技术的项目。我发现在项目中使用 EventStore 很有趣,但我在文档中阅读了一些内容,发现使用 EventStore 使得不需要消息总线,因为 EventStore 本身允许订阅事件 - 这是正确的吗?在 EventStore 的顶部实现总线我会有一些优势吗?

0 投票
2 回答
103 浏览

domain-driven-design - 是否有一种可接受的方式来处理包含另一个聚合 ID 的事件?

假设为客户生成了发票。这个特定的事件看起来像这样:

这是一个相当简单的示例,它指的是发票所属的客户集合。

当我想创建发票视图并且想在发票中嵌入客户的姓名时,困难就显现出来了。我可以做两件事 - 丰富原始事件以包含客户的姓名或加载客户视图以在我构建发票视图时找出名称是什么。现在这不是一个非常复杂的示例,但在某些情况下,几乎无法再丰富事件,因为我最终将各种聚合的许多属性复制到特定于其他聚合的事件中。

除了丰富事件之外,是否有一种普遍接受的方式来处理这个问题?因为现在每次引发 invoice.cancelled 事件,我都必须再次包含发票金额,以便我可以使用新余额更新客户视图。

0 投票
2 回答
1930 浏览

cqrs - 应该如何托管 Event Sourcing 事件处理程序以构建读取模型?

有各种示例应用程序和框架实现了 CQRS + 事件溯源架构,并且大多数描述了使用事件处理程序从存储在事件存储中的域事件创建非规范化视图。

托管此架构的一个示例是作为一个 web api,它接受写入端的命令并支持查询非规范化视图。此 Web api 可能会扩展到负载平衡场中的许多机器。

我的问题是读取模型事件处理程序托管在哪里?

可能的场景:

  1. 托管在单独主机上的单个 Windows 服务中。 如果是这样,那不会造成单点故障吗?这可能也使部署复杂化,但它确实保证了单线程执行。缺点是读取模型可能会出现延迟增加。

  2. 作为 web api 本身的一部分托管。 例如,如果我使用EventStore进行事件存储和事件订阅处理,是否会为每个单个事件触发多个处理程序(每个 Web 场进程中的一个),从而在处理程序尝试读/写时引起争用到他们的阅读商店?或者我们是否保证对于给定的聚合实例,它的所有事件都将按事件版本顺序一次处理一个?

我倾向于方案 2,因为它简化了部署,并且还支持需要监听事件的流程管理器。尽管只有一个事件处理程序应该处理一个事件,但情况相同。

EventStore 可以处理这种情况吗?其他人如何在最终一致的架构中处理事件?

编辑:

澄清一下,我说的是将事件数据提取到非规范化表中的过程,而不是读取这些表以获取 CQRS 中的“Q”。

我想我正在寻找的是我们如何“应该”实现和部署可以支持冗余和规模的读取模型/sagas/等的事件处理的选项,当然假设事件的处理是以幂等方式处理的。

我已经阅读了两种可能的解决方案,用于处理在事件存储中保存为事件的数据,但我不明白应该使用哪一个而不是另一个。

事件总线

事件总线/队列用于在事件保存后发布消息,通常由存储库实现。相关方(订阅者),例如读取模型或 sagas/流程管理器,“以某种方式”使用总线/队列以幂等方式处理它。

如果队列是 pub/sub,这意味着每个下游依赖项(读取模型、sagas 等)只能支持每个进程订阅队列。多个进程意味着每个进程都处理相同的事件,然后竞相在下游进行更改。幂等处理应该处理一致性/并发性问题。

如果队列是竞争消费者,我们至少有可能在每个网络场节点中托管订阅者以实现冗余。尽管这需要每个下游依赖项都有一个队列;一个用于 saga/流程管理器,一个用于每个读取模型,等等,因此存储库必须发布到每个以最终保持一致性。

订阅/订阅

订阅/订阅,感兴趣的各方(订阅者)按需读取事件流并从已知检查点获取事件以处理到读取模型中。

如有必要,这对于重新创建读取模型非常有用。但是,按照通常的发布/订阅模式,似乎每个下游依赖项只应使用一个订阅者进程。如果我们为同一个事件流注册多个订阅者,例如在每个 web 农场节点中注册一个,他们都将尝试处理和更新相同的相应读取模型。

0 投票
2 回答
361 浏览

eventstoredb - eventstore 投影文档在哪里?

有谁知道有关投影 API 的综合文档?

eventstore ui中的查询和投影之间还有什么区别?

0 投票
4 回答
908 浏览

event-sourcing - 可以通过事件溯源进行 FAT 事件吗?

我最近一直在 Greg Young EventStore 之上构建一个应用程序作为我的持久层,我一直在思考我应该允许一个事件获得多大?

例如,我有一个包含以下字段的英国地址聚合

现在我正在使用 React/Redux 构建 UI,并且正在考虑是否应该创建一个包含所有上述字段的 FAT addressUpdated 事件?

或者我应该为每个不同的字段创建一个事件?并在客户端内对它们进行批处理,直到触发 Save 事件?buildingNameUpdated 事件、streetUpdated 事件、localityUpdated 事件。

我不确定答案是否像黑白问一样我问过它我真正想知道的是您可以使用哪些条件/约束来做出决定?