问题标签 [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 回答
1458 浏览

javascript - EventStore 预测何时使用它们

我一直在关注 Event Store 有一段时间了,让我感到难过的一件事是什么时候应该考虑编写投影?创建展平投影是常见的做法吗?

此处的设置使用每个聚合的流

例如,假设我有 2 个如下所示的事件:

我有以下查询:

以上并没有做很多事情,只是将所有流聚合成一个单数。是否可以将更平坦的视图投影到例如这样的东西中?也许我的电线交叉但显然使用emit可以实现这一点?

我的想法是,一旦我写入流,我可以保证聚合处于有效状态,因此对于任何相关方,我应该只公开这些过程所需的字段。投影一个简单的模型(去规范化的视图)是正确的做法吗..

上面是一个简单的示例,但您可以想象聚合稍微复杂一些。

如果我遗漏了任何内容或需要进一步澄清,请发表评论,我可以添加。

0 投票
0 回答
70 浏览

eventstoredb - 是否可以在无需编写自定义客户端的情况下镜像 EventStore?

是否可以仅使用EventStore.ClusterNode.exe创建另一个 EventStore 的镜像?我想要完成的是为开发和支持团队提供本地数据的只读副本,以便我们可以提高调试/支持方案的性能。

假设我在 location 有一个 EventStore 设置A。运行该环境的所有服务都位于A. 支持位于 WAN 上B,开发位于 WAN 上C

我希望能够独立启动而无需B重新配置(除了允许网络访问的初始设置)。CA

这样可以定位BC查询其本地副本,而不会出现 WAN 缓慢的情况。

我认为这是可能的,但我没有在网上看到这个文档,或者我不明白我在寻找什么。我试图手动解决这个问题,但我在新镜像上得到的只是生成了新事件。

0 投票
1 回答
347 浏览

c# - 如何获取附加到流的事件的版本

我正在使用 C# API AppendToStreamAsync() 调用写入 EventStore 流。我看到虽然这会返回一个 WriteResult,但不会返回新附加事件的版本。我不能依赖 NextExpectedVersion,因为可能有多个客户端写入此流。

我可以订阅流并等待“我的”事件出现,但我是否错过了其他内容,文档很简单,甚至没有提到返回的类型。

什么被认为是获得这个数字的最佳方式?

0 投票
1 回答
235 浏览

eventstoredb - Best performance projection strategy from two categories in Greg's Event Store

I'm using Greg's Event Store and I have two categories of streams, I would like to project some events (by type) from both categories into one projection.

My first solution would be to use "fromAll" and select the event types that I'm looking for to create the projection:

My second solution would be to create two category projections, and then project those two into my final one:

What would be the most efficient one? Is there any good practice about this need?

0 投票
0 回答
454 浏览

java - 使用 Java 中的 akka 流将来自 eventstore 的流事件与 akka actor 集成

我正在使用 GetEventStore 作为 akka-persistence 持久化事件的日志提供程序,并访问akka.persistence.query.javadsl以从 eventstore 查询事件。演员系统和日志提供者是使用 spring 配置的。

事件存储配置如下:

期刊提供者代码如下:

事件存储通过参与者系统填充相关事件,以下代码测试传入事件并通过参与者作为接收器使用它们。

我在这里面临的问题是一些消息被丢弃,并不是所有的事件都被提供给流映射函数。

这是进行处理的演员

上述代码段注释中提到的问题是:

  1. 传入的源流正在丢弃大量事件,并且某些事件没有被传输给参与者。
  2. 我需要一些有关mapAsync流集成语法的帮助,因为文档中给出的那个给出了编译问题。
  3. 再次为流集成使用actorWithRef的语法将非常有帮助。Akka 文档没有。

万分感谢 !

0 投票
3 回答
3416 浏览

c# - EventStore 的 .Net Core 客户端 - 连接已关闭

我最近开始尝试.net-core ( nuget package )的EventStore Client API。但是,我正在努力将事件写入流中。下面是我用来建立连接的代码:

这是我尝试写入 EventStream 的代码:

IEventSourced界面非常简单,如下所示:

现在,当我调用该SaveAsync函数时,我经常遇到异常:EventStore.ClientAPI.Exceptions.ConnectionClosedException : Connection 'ES-9105371b-bf54-4e18-98e7-d67e4ce11aef' was closed

PS 我也尝试过使用 .net Client API,它似乎使用相同的代码工作得很好。

任何指针将不胜感激。干杯!

0 投票
1 回答
488 浏览

api - 如何发布带有元数据的事件以通过 HTTP API 流式传输

我正在使用 EventStore 并想向它发布消息(事件)。我使用 HTTP API 进行测试。我已经设法发布事件本身,并指定了事件类型,但我不知道如何为我的事件指定元数据。(而且我必须提供此元数据,因为我在另一端的消费应用程序需要它)。

这是我的 HTTP 请求的样子:

Content-Type: application/json ES-EventType: My.own.event.type POST http://10.0.75.2:2113/web/index.html#/streams/foobar { "props": "andvalues" }

我是否通过标题在正文中指定元数据?我找不到太多关于此的文档,只有官方没有提及。

0 投票
1 回答
387 浏览

c# - 等待识别客户端超时 (ReadStreamEventsForwardAsync)

我正在尝试使用 4.0.0 C# 客户端 API (EventStore.ClientAPI.dll) 连接到 GetEventStore 版本 3.2.2。我在 LINQPad 5 中将其作为示例编写,以便找出问题所在。LINQPad 查询是为 C# 语句设置的。这是我到目前为止编写的用户查询。

它产生以下输出

我的任务.Wait(); 第 19 行永远不会完成,最终查询以发生一个或多个错误的 AggregateException 结束。内部异常显示“连接'ES-7a7e3dfb-db11-4a5c-872c-100ad7724ba2'已关闭。”。我正在遵循我所看到的例子,但我似乎没有取得任何进展。希望这是一些愚蠢的事情,我只是没有设置它会让我的客户得到通知。如果您有任何想法,请告诉我。

0 投票
2 回答
215 浏览

docker - 如何防止使用 Docker 在 EventStore 中重写 url?

我正在尝试在 Docker 中运行服务器(EventStore),在这种情况下是他们自己的图像。我正在使用 -P 标志运行此映像以分配外部端口。(我的使用使得特定的端口分配不切实际。)

当我启动 EventStore 的图像时,端口 2113(他们的网络端口)被映射到某个高端口,比如 33125。如果我在浏览器中输入 (my_ip):33125,它会被重写为 (my_ip):2113/web/ . 当然,在 Docker 端口 2113 之外没有任何意义!

我怎样才能防止这种重写,或者至少将它全部包含在 Docker 中?

0 投票
0 回答
265 浏览

eventstoredb - eventstore 套接字接收错误

我正在使用 .Net EventStore 并将基本事件附加到流中,如下所示:

我收到以下“套接字接收错误”:

知道为什么吗?谢谢 :-)

这意味着写入流的事件不会推送到订阅客户端...