Mik*_*378 3 architecture domain-driven-design neo4j cqrs
我拥有一个使用 Neo4j 作为图形数据库的应用程序。
我将读取和写入分开(遵循 CQRS 建议),以便实现命令模式并优化我的请求(页面请求),整个共享同一个数据库:neo4j 数据库。(不是两个不同的)
现在,我计划存储一些领域事件,例如UserRegisteredEvent等,以便由 Actors (Akka) 中托管的一些事件处理程序出队。
将域事件存储在共享数据库中(在我的例子中作为简单的 Neo4j 节点)是否有意义?
或者我真的需要一个三级数据库,例如MySQL?
我明确指出,我的解决方案不需要事件溯源。
如果您可以以某种方式关联存储的事件,或者您想向这些可以用关系或属性表示的事件添加更多信息,则图形数据库(在您的情况下为 Neo4j)是最佳选择,因为查询会更快比(或不那么)规范化的 RDBMS 更好。
此外,将来您可以轻松添加更多属性,而无需关心 SQL 和已添加实体的缺失属性。
因此,从我的角度来看,将事件节点添加到共享 Neo4j 数据库是一种更好的方法,即使对于简单的节点也是如此,因为查询是在子图中进行的,并且不会影响您的业务领域。
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |