【发布时间】:2014-09-18 10:11:42
【问题描述】:
我正在经历一个新项目的研究阶段,目前我正在与一位同事就项目的架构进行辩论。
我们已经同意,我们将使用 CQRS 和带有 azure 的事件溯源来创建分布式消息传递系统。它将是一个前端使用 Angular js 的 SPA,后端将是 Web API。
我们现在已经讨论了如何设置数据库,这就是差异所在。
我们已经同意将数据库拆分为两个数据库,一个用于读取和写入。 我的同事想将 sql server 用于读取和写入数据库,因为他的整个职业生涯都是在 sql 中度过的,除了 sql 什么都不想听到。 另一方面,我一直在研究NoSql,我觉得它更适合读取数据库,因为它的性能更好。
由于 CQRS 是关于最终一致性的,我已经读到 NoSql 数据库也基于此,这让我现在考虑使用 NoSql 来写入数据库。
我们还计划为每个聚合根创建一个事件表,而不是一个包含所有事件的通用事件表。 由于这些表不是关系表,这让我想到了为什么我们应该使用 sql server。
我的问题更多是关于人们如何创建他们的活动商店的最佳实践或一般方法。
- 您是对所有事件使用一个表还是为每个聚合根创建一个事件表?
- 将 NoSql 数据库用于 CQRS 应用程序的写入和读取数据库有哪些优点/缺点?
- 最后但并非最不重要的一点是,您将如何说服已与 Sql 结婚的固执工作同事转换为 NoSql 方法?
【问题讨论】:
标签: nosql cqrs event-sourcing