我是CQRS的新手,我读过关于预测和投影仪的反应器,但我的资源并没有完全覆盖它.有人可以在事件采购中彻底定义反应堆,还是给我一个链接或书来阅读?我的主要问题是: 什么是反应堆
>什么是反应堆?
>反应堆的结构是什么?
>我们如何实施反应堆?
这里的想法是你希望语义域事件存储它们,并且能够重放它们,但是你需要对它们进行各种解释才能有效地查询它们.因此,您需要一个投影,表明域事件X表示给定视图的INSERT或UPDATE或DELETE.
因此,投影基本上是域事件和CRUD操作之间的映射.您可能还会说投影是域事件的许多解释之一.
现在,可能需要响应与更新表无关的域事件的操作.例如,每当您收到userLoggedIn事件时,您可能希望向用户发送电子邮件.如果是那个规则就像一个简单的.这基本上就是你所说的反应.您只是以某种自定义方式对域事件做出反应.
因此,反应器(反应的组件)的结构与投影仪的结构非常相似.唯一的区别是反应堆不会更新读取模型,而是执行您想要的任意操作.
换句话说:投影是一种特殊的反应,它始终是关于更新读取模型的.由于这是如此常见,你有一个专门的模式,但一般来说:每当你做一些事情来回应接收事件,这是一个反应.
如果没有更多细节,很难回答如何实施反应堆的问题.在wolkenkit,JavaScript和Node.js的CQRS和事件采购框架,反应堆只不过是流量.流量可以是stateless flows或stateful flows,具体取决于它们是否包含状态.
一个简单的例子(当然特定于wolkenkit)可能如下所示:
'use strict'; const when = { 'userManagement.user.loggedIn' (event, mark) { // ... mark.asDone(); } }; module.exports = { when };
(免责声明:我是wolkenkit的作者之一,所以请带上一些盐的例子.)