EventStore vs. MongoDb [closed]

我想知道使用EventStore(http://geteventstore.com)在MongoDB中实现自己的事件源有什么优势。

我问的原因是,我们公司有一些人每天与MongoDb工作。他们不与事件采购工作。虽然他们不是完全在黑暗的主题,他们不打算开始实现它在任何地方。

我即将开始一个项目,这是完全适合的事件采购。有大约16个非常明确定义的事件,和大约7个良好定义的预测。我说“关于”,因为我知道,一旦他们看到产品在使用,会有更多的投影和事件的需求。

该方法将是API第一,与我们组织的其他部分将消耗的REST Api。

虽然我已经阅读了很多关于Event Sourcing的方式Greg Young定义它,我从来没有实际实现一个事件源代码解决方案。

这是一个绿色的田野项目。没有技术限制,因为我们将把所有东西都暴露为REST接口。因此,如果任何人有与EvenStore的工作经验或MongoDb的事件采购,请告诉我。

还有一个几乎完全不相关的问题关于事件采购:
你直接查询事件存储吗?或者你会总是创建新的投影和重播事件来填充这些预测吗?

免责声明我是Greg Young(如果你看不懂我的名字:))

我会回答这个问题,虽然我相信它很可能会被删除反正。这个问题对我来说有点奇怪,但答案是相当奇怪。我不会花时间单独回答每个回复,而会把我的所有意见在此回复。

1)有一个意见,我们只运行一个自定义版本的单声道是一个细节,但…这不是这样(并没有一年多)。我们在等待关键补丁,我们对单声道(作为示例threadpool.c打他们的主人)。这发生了。

2)EventStore是3个子句的BSD许可。不知道你怎么能声称我们不是开源。我们还有一家公司,提供商业支持。

3)有人提到我们去9月的版本3。版本1是在2年前发布的。版本2添加了集群(显然一些破坏性更改vs单节点)。版本3增加了一吨的东西,包括竞争消费者的能力。在这段时间内,实际的客户端协议(特别是那些使用HTTP API的客户端协议)的变化很小。

在我的建议真正令人不安的是,他们似乎不明白他们正在比较。这大概相当于我说“我应该使用neo4j还是leveldb?”。你可以在leveldb之上构建一个图形数据库,但这将是一个相当多的工作。

在这种情况下,Mongo将是事件存储器上的存储引擎,OP将必须写他/她自己。如果你想要拥有最基本的操作,编写一个生产质量事件存储是一个非常简单的操作。

我写了this in response to the mailing list equivalent of this question

How will you do the following with Mongo?:

Write and read events to/from streams with ordering/optimistic concurrency/etc

Then:

Your projections don’t want to read from streams in the same way they were written, projections are normally interested in event types and want all events of type T regardless of stream written to and in proper order.

You probably also want for instance the ability to switch live from pushed event notifications to handling pulled information (eg polling) etc.

如果比较Kafka,数据库和事件存储,这将更有意义。

http://stackoverflow.com/questions/19467084/eventstore-vs-mongodb

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:EventStore vs. MongoDb [closed]