当前位置: 首页 > 后端技术 > PHP

ReactorforEventConsumers-事件跟踪

时间:2023-03-30 00:14:22 PHP

行为。所以Reactor就是为了处理域中有副作用的行为而诞生的。那么什么是有副作用的行为呢?如果一种行为发生一次而不是多次产生不同的结果,则可以将其解释为具有副作用。例如,当订单完成(OrderConfirmed)时,会向用户发送一封电子邮件。这种行为有副作用,因为当重播订单完成事件(OrderConfirmed)时,用户将收到重复的电子邮件。以下是根据我们的现场经验总结的Reactor用例。实际用例副作用行为处理副作用行为领域是Reactor最直观的用例。比如发送订单邮件:聚合间通信有时候两个聚合需要通过事件通信来完成一个简单的过程。这时候我们就可以使用Reactor了。假设我们创建了两个聚合,Order和Bill。当Order被确认后,Bill会自动生成Invoice,我们可以使用Reactor来完成两个聚合之间的通信:有理由强调这个过程的简单性。如果一个流程比较复杂,时间较长,我们应该采用Saga方案,因为它支持回滚操作。当翻译领域的事件溯源与其他架构模式混合时,我们将不可避免地要处理跨架构通信。这时候我们就可以使用Reactor了。比如在CRUD架构中,也需要在事件溯源中对领域事件进行监控。如果我们直接在CRUD中监控,就会出现抽象泄漏(领域事件是事件溯源中的一个抽象概念)。这时候我们可以使用Reactor将领域事件翻译成CRUD中的事件发送出去:总结一下,Reactor就像一个特殊的Projector。与Projector一样,它具有单一且集中的职责,因此可以轻松编写单元测试。本文转载自【WhyDecoupled】:https://codedecoupled.com/php...,如果你也对TDD、DDD和简洁代码感兴趣,请关注公众号【WhyDecoupled】,一起探讨一起软件开发的方式。