Modeling Facts and Reactions with Domain Events
11 hours ago
- 业务逻辑通常遵循“当某事发生时,其他事情应该发生”的模式。
- 将事实和后果耦合在一个脚本中会模糊领域事实并导致维护问题。
- 领域事件以过去时态记录事实,而非命令;它们是不可变的,并包含足够的信息来确定事实。
- 事件应在做出决策的地方引发(例如,在聚合中),并收集直到工作单元提交。
- 处理器独立地响应事件,每个处理器具有单一职责和自身的失败处理机制。
- 跨越聚合边界需要单独的事务以实现最终一致性。
- 跨越限界上下文使用集成事件,这些事件被转换为本地命令。
- 并非每次状态变更都需要触发事件;当依赖项属于一个明确操作的一部分时,直接调用更合适。
- 领域事件改进了分离性,允许每个后果独立演进并具有容错能力。