命令查询责任隔离(CQRS)/事件采购(ES):为什么要使用它?如何解决一致性问题?

时间:2015-06-12 02:16:10

标签: cqrs event-sourcing

我几个月前在ScalaDays旧金山的演讲中首次听说过CQRS / ES。从那时起,我注意到技术写作中偶然会提到术语,最近才提及Fiverr's blog post on the topic

到目前为止看起来非常有趣,但我遇到了一些相关问题,我想知道是否有任何常见的解决方案:

  • 您如何在短期内处理最终的一致性和可能不一致的观点?
  • 你如何处理涉及a.k.a. atomic读取/写入a.k.a.交易的多种资源的业务逻辑?
  • 如何处理用户界面要求立即产生结果的用例?

此外,采用这种模式有哪些优势,它们如何超越额外复杂层的成本呢?

提前致谢!

2 个答案:

答案 0 :(得分:4)

  
      
  • 您如何处理最终的一致性和潜在的不一致性   短期内观点?

  •   
  • 如何处理用户界面需要的用例   请求的直接结果?

  •   

使用事件源自动意味着最终一致的读取模型是一种常见的误解。许多ES从业者(包括Udi Dahan和Greg Young在内)都建议从同步的,立即一致的模型开始,并在需要时立即转向最终的一致性。

  
      
  • 你如何处理涉及a.k.a. atomic读取/写入a.k.a.交易的多种资源的业务逻辑?
  •   

这是一个复杂的问题,没有单一答案,可能更适合讨论论坛和SO等问答论坛。我建议在DDD/CQRS discussion group中进行搜索(和发布)。

答案 1 :(得分:0)

此外,这里是我最近在该主题上发现的一些幻灯片。它们涵盖了在实践中使用CQRS / ES的团队的更多“原因”/“为什么不”的方面。

http://ookami86.github.io/event-sourcing-in-practice/