cqrs - 什么是事件溯源中的 react 器/ react ?

标签 cqrs event-sourcing reactor

我是 CQRS 的新手,我阅读了关于投影和投影仪以及 react 堆的内容,但我的资源没有完全涵盖它。有人可以在事件溯源中彻底定义 react 器,或者给我一个链接或书籍供我阅读吗?我的主要问题是:

  • 什么是 react 堆?
  • react 器的结构是什么?
  • 我们如何实现 react 堆?
  • 最佳答案

    投影是一个函数,它接收域事件并将其转换为列表、树、图形等任何...

    这里的想法是您希望语义域事件存储它们并能够重放它们,但是您需要对它们进行各种解释以有效地查询它们。因此,您需要一个投影,表明域事件 X 表示 INSERTUPDATEDELETE对于给定的 View 。

    因此,投影基本上是域事件和 CRUD 操作之间的映射。您可能还会说投影是对领域事件的多种解释之一。

    现在,可能需要响应与更新表无关的域事件的操作。例如,每当您收到 userLoggedIn事件,您可能希望向用户发送电子邮件。这就像一个简单的如果这个然后那个规则。这基本上就是你所说的 react 。您只需以某种自定义方式对领域事件使用react。

    因此, react 器( react 的组件)的结构与投影仪的结构非常相似。唯一的区别是 react 器不会更新读取模型,而是执行您想要的任何操作。

    换句话说:投影是一种特殊的 react ,它总是关于更新读取模型。由于这很常见,因此您有一个专门的模式,但一般来说:每当您为响应接收事件而做某事时,这就是一种 react 。

    如果没有更多细节,很难回答如何实现 react 器的问题。在 wolkenkit ,一个用于 JavaScript 和 Node.js 的 CQRS 和事件源框架, react 器只不过是流。流量可以是 stateless flowsstateful flows ,取决于它们本身是否包含状态。

    一个简单的例子(当然是 wolkenkit 特有的)可能如下所示:

    'use strict';
    
    const when = {
      'userManagement.user.loggedIn' (event, mark) {
        // ...
        mark.asDone();
      }
    };
    
    module.exports = { when };
    

    (免责声明:我是 wolkenkit 的作者之一,所以请对这些例子持保留态度。)

    关于cqrs - 什么是事件溯源中的 react 器/ react ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46970063/

    相关文章:

    security - CQRS 应用跨领域问题,例如安全性

    aggregate - CQRS 事件存储聚合与投影

    design-patterns - 事件溯源定义

    python - 使用 twisted.trial.unittest 时 react 堆在测试之间停止

    javascript - 如何使用 javascript-client 关闭与 sse Flux 的连接?

    domain-driven-design - 事件源系统中的预测

    java - 轴突迁移从 2.4 到 3.1

    php - 等待 PROOPH 中投影创建的读取模型中的新记录

    domain-driven-design - 事件溯源:聚合根和性能

    java - Spring 异步 REST 与 DeferredResult 和 Reactor