1

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

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

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

4

1 回答 1

0

不需要版本,因为在写入流之前您知道聚合(流)的版本,所以当写入成功时您知道版本。

在将新事件写入流之前,您必须读取流以重新水合聚合。然后你就知道版本了。因为当其他作家写入同一个流时,您必须首先拥有新状态。(如果内存中仍有聚合,则可以从聚合中的当前版本进行查询)

如果不需要乐观锁定,您可以在编写流时提供 ANY 版本。(当流只是一个日志流时,可以这样做)

于 2017-02-19T09:54:56.517 回答