首页 > 解决方案 > 此图是否遵循微服务、带有事件溯源的 DDD

问题描述

  1. 事件溯源是否应该在流程结束时,是否应该有事件处理程序?
  2. 在跟踪事件溯源时,我知道我们可以随时从事件中获取应用程序状态,但我们是否也应该将该状态保存在数据库中? 建筑学

标签: domain-driven-designmicroservicesevent-sourcing

解决方案


  1. 在执行域逻辑后发出事件(在实体/域对象上执行了一些操作)。首先,事件保存在存储中,然后发布到总线,其他消费者(微服务、图表中的事件处理程序)可以订阅它。事件的持久化和发布应该像一个事务。
  2. 每次需要对域对象执行新操作时,整个事件集都会从该实体的事件存储中读取。一些实体可以有很多事件并使用所谓的状态快照来优化性能。基本上它是 X 事件之后域对象的状态。每个 X 事件都可以创建快照。它们单独存储在事件存储中,通常事件溯源库允许配置快照。但这只是出于性能目的。

我快速创建了图表以显示通常发生在命令处理程序中

在此处输入图像描述


推荐阅读