【问题标题】:Best Place To Save Domain To Write Database In CQRS (Command Handler or Domain Event Handler)保存域以在 CQRS 中写入数据库的最佳位置(命令处理程序或域事件处理程序)
【发布时间】:2011-01-12 05:18:57
【问题描述】:

我现在正在研究 CQRS,我看到了一些源代码(Greg Young 的 SimpleCQRS 和 Mark Nihjof 的)。 我仍然对命令和域事件感到困惑。 我们是否总是需要将域持久化以在域事件处理程序中“写入数据库”? 如果我调用代码将域保存到命令处理程序中的数据库(通常通过域存储库),然后让域事件处理程序处理其他内容(例如:更新读取模型和执行其他服务,如电子邮件通知),这是否常见。 谢谢。

【问题讨论】:

标签: domain-driven-design cqrs


【解决方案1】:

存储事件:我不会使用事件处理程序来持久化事件。使用事件溯源时,将其从命令处理程序委托给存储库或工作单元可能是最常见的方法。所以,是的,在命令处理程序中进行持久性(好吧,委托它)并让事件处理程序做其他事情是很常见的。

存储状态:当不使用事件源时,我认为人们将事件存储在状态旁边或更糟,根本不存储(使用队列作为持久性机制)。尽管如此,持久性逻辑仍然存在于命令处理程序的空间中。

命令捕获意图并告诉系统要做什么。始终使用祈使句。 事件捕获意图并告诉系统中发生了什么。总是过去时。

你对我的印象是这个话题的新手。掌握 CQRS 概念的最佳方法是观看 http://cqrsinfo.comhttp://skillsmatter.com(架构/ddd)上的材料。其他在这个主题上写博客的人(我不知道):Udi Dahan、Gregory Young、Jonathan Oliver、Rinat Abdullin、Jérémie Chassaing……

【讨论】:

  • 感谢您的解释,我确实是 CQRS 的新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
相关资源
最近更新 更多