【发布时间】:2014-02-28 22:21:50
【问题描述】:
我拥有一个使用 Neo4j 作为图形数据库的应用程序。
为了实现命令模式和优化我的请求(页面请求),我分离了读写(遵循 CQRS 建议),整个共享同一个数据库:neo4j 数据库。 (不是两个不同的)
现在我计划存储一些域事件,如 UserRegisteredEvent 等,以便由托管在 Actors (Akka) 中的一些事件处理程序出列。
将域事件存储在共享数据库中是否有意义,在我的例子中是简单的 Neo4j 节点?
还是我真的需要一个 tierce 数据库,例如 MySQL?
我确切地说我的解决方案不需要事件溯源。
【问题讨论】:
-
在看 Neo4j 时,我突然有了同样的想法,所以其他人肯定也在考虑这个吗?这似乎很有意义,因为事件与图形密切相关,因此图形数据库似乎是显而易见的选择......你有没有进一步研究过这个?
-
@Schalk 最后,我通过与相应节点“模型”建立直接关系来存储事件。如果事件是“UserCreatedEvent”,我创建一个链接到“User”的节点“UserCreatedEvent”。我有一个调度程序,它检索所有新事件以通过 Label "New" (Neo4j 2.0) 处理。
标签: architecture neo4j domain-driven-design cqrs