Ali*_*ili 7 reactor cqrs event-sourcing
我是 CQRS 的新手,我阅读了关于投影和投影仪以及反应堆的内容,但我的资源没有完全涵盖它。有人可以在事件溯源中彻底定义反应器,或者给我一个链接或书籍供我阅读吗?我的主要问题是:
一个投影它接收域事件并将其转换为列表、树、图等上的操作\xe2\x80\xa6
\n\n这里的想法是,您希望语义域事件存储它们并能够重播它们,但您需要对它们进行各种解释才能有效地查询它们。因此,您需要一个投影来表明域事件 X 意味着INSERT或UPDATE或DELETE对于给定视图
因此,投影基本上是领域事件和 CRUD 操作之间的映射。您也可能会说投影是领域事件的多种解释之一。
\n\n现在,响应域事件可能需要执行与更新表无关的操作。例如,每当您收到userLoggedIn事件时,您可能想向用户发送电子邮件。这就像一个简单的if this then that规则。这基本上就是所谓的反应。您只需以某种自定义方式对域事件做出反应即可。
因此,反应器(发生反应的组件)的结构与投影仪的结构非常相似。唯一的区别是反应器不会更新读取模型,而是执行您想要的任何任意操作。
\n\n换句话说:投影是一种特殊的反应,它总是与更新读取模型有关。由于这种情况很常见,因此您有一个专门的模式,但一般来说:每当您响应接收事件而执行某些操作时,这就是一种反应。
\n\n如果没有更多细节,如何实现反应堆的问题很难回答。在wolkenkit(用于 JavaScript 和 Node.js 的 CQRS 和事件源框架)中,反应器只不过是流。流可以是无状态流或有状态流,具体取决于它们本身是否包含状态。
\n\n一个简单的例子(当然是 wolkenkit 特有的)可能如下所示:
\n\n\'use strict\';\n\nconst when = {\n \'userManagement.user.loggedIn\' (event, mark) {\n // ...\n mark.asDone();\n }\n};\n\nmodule.exports = { when };\nRun Code Online (Sandbox Code Playgroud)\n\n(免责声明:我是 wolkenkit 的作者之一,所以请对这些示例持保留态度。)
\n| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |