domain-driven-design - 事件溯源的副作用
问题描述
假设我有以下关系):
Aggregate A (contains E1, E2, E4)
- Entity of type E1
- Entity of type E2 (contains E3)
- Sub-entity of type E3
- Entity of type E4
所有实体都实现以下签名:
fun handleCommand(command: Command): List<Event> // returns a list of events that can be applied on itself
fun handleEvent(event: Event): Entity // returns itself with the new event applied
在处理 say 上的命令时E4
,这在逻辑上应该会在 E2 上引起一些副作用(事件),最佳实践是什么?请注意,这不应与 sagas 混淆,但这是一个关于在处理子实体上的命令时应如何生成对父实体的副作用的一般性问题。
解决方案
这是聚合的重点。它将协调这个过程。外部代码将无法直接在 E4 上发出命令,因为它将被封装在聚合中。相反,命令将被路由到聚合,聚合将在内部发布和协调流程。
希望有帮助
推荐阅读
- python - 如何标记python dict父级别失败或通过子级别的基础
- java - @ConfigurationProperties 在以编程方式添加活动配置文件后重新加载
- python - 最喜欢的运动有两个列表。一个是自动化的,一个是用户输入的。找到交叉点
- c++ - Google 测试发现在 mac OS X 上添加并运行了我所有的测试两次
- sas - 通过 & 使用 symget 与取消引用
- python - Django 隐式更新所有字段
- excel - 如何在excel中转置不同的列?
- express - aws sns 确认订阅请求处理问题
- apache-spark - Spark Dataframe 中的过滤操作
- json - json格式不美化json