Bud*_*Joe 37 cqrs event-sourcing ncqrs
除了缺少事件采购的一些好处之外,在没有事件采购部件的情况下,将现有架构适应CQRS还有其他任何缺点吗?
我正在开发大型应用程序,开发人员应该能够在接下来的几个月内将现有架构分离为命令和查询,但要求他们在此阶段添加事件源,这将是一个巨大的资源问题.透视.我是不是因为不包括事件采购而亵渎神灵?
Den*_*aub 57
事件采购是可选的,并且在大多数情况下使事情变得复杂,如果过早引入则会使事情变得复杂.特别是在从传统架构过渡时,甚至在团队没有使用CQRS的经验时.
通过将事件存储在简单的事件日志中,可以获得归因于ES的大多数优势.你不必放弃基于状态的持久性,(但从长远来看,你可能会这样做,因为在某些时候它将成为合乎逻辑的下一步).
我的建议:简单是关键.一步一步,特别是在引入如此戏剧性的范式转变时.从简单的CQRS开始,然后在您(和您的团队)习惯了新概念时引入事件日志.然后,如果完全需要,将持久性更改为Event Sourcing并解雇DBA ;-)
Sud*_*han 15
我完全赞同Dennis,ES不是CQRS的先决条件,事实上CQRS本身很容易实现,并且有可能真正简化您的设计.
你可以在这里找到一个顺利的介绍
其次,CQRS本身带来哪些好处?
有关CQRS如何设计的更多信息,请点击此处
如果您仍有疑虑,可能需要阅读本文
我们目前将CQRS用于中等复杂度的项目,并且发现它非常适合.我们开始使用自定义引导代码,现在已经转向使用Axon Framework为我们提供了一些基础架构组件
如果您想了解更具体的内容,请随时与我联系.
zs2*_*020 13
事件源模式存在一个基本问题,即由于代码更改,事件存储中的事件可能与您的应用程序中的事件处理程序不兼容.
话虽这么说,每当您通过添加新功能修改事件处理程序时,您都需要考虑向后兼容性.您必须确保您的代码始终可以处理由不同版本的代码创建的不同阶段中的相同事件.
当你的应用程序变得更加复杂时,你会发现使它向后兼容会非常痛苦.
我认为Event Sourcing让人们害怕CQRS.这是有原因的.它不自然 - 当你与现实世界中的某些东西互动时,你不需要了解这个对象的完整历史.
" 事件采购是与CQRS完全正交的概念 "(来源) - 从技术上讲,如果你不使用ES,你就不会从CQRS功能中消失任何东西.
我不知道为什么Event Sourcing被认为是解决一些"消息"相关问题的唯一基础,例如:消息的重复/缺失,消息的重新排序和数据冲突等.如果你不使用Event,那不是真的.采购你不能创造封装手段以其他方式解决这些问题.
我如何看待使用另一种数据组织原理实现CQRS消息传递的替代方法,您可以在此处阅读.
我建议使用"签名文档"方法,将数据视为修改事件的组合,而不是由负责用户签署的不可变部分的组合.我确定可以有很多其他解决方案来实现消息流和数据存储.在选择您想要使用的商业模式时,您需要考虑您的商业模式.