问题描述
命令查询职责分离 (CQRS) 和事件溯源 (ES) 模式已经存在十多年了。然而,近年来,很多人都在熟悉这些模式。 是否有任何诸如技术进步或其他原因导致其流行? 有没有以前传统技术无法解决的问题,而现在CQRS/ES可以解决的问题?如果是,这些模式是如何解决的?
解决方法
CQRS 允许我们独立扩展我们的系统:我们经常需要处理比写入更多的读取,因此不同的可扩展性。 Why? And All The Things To Consider
,是否存在以前传统技术无法解决的问题,而现在CQRS/ES可以解决的问题?
一 - 当您使用持久数据结构时,您保留检查先前状态的能力。实际上,您可以获得细粒度的时态查询支持。
根据您的领域,持久性数据结构可能比变异数据结构更适合您的领域,因此您还可能获得较低的技术债务。
您还可能在您的服务之间获得更好的消息传递 - 而不是具有持久性表示和消息表示,您可能能够为两者使用“域事件”。