设计模式(Design Patterns)
模式 = 反复出现的场景的成熟解。本 group 解决 L2 第三问:"典型场景有没有现成答案?"
本 group 包含
| 文档 | 核心问题 | V2 节点 |
|---|---|---|
| Tactical Mapping | L1 战术模式如何映射到 L2? | B3 + B4 |
| Saga | 跨 BC 长事务如何实现? | B3 分解 + B7 |
| CQRS + ES | 读写分离 + 事件溯源 | B4 抽象 |
| Event-Driven Workflow | 事件驱动的业务流程? | B7 表达 |
| Event-Request-Response Hybrid | 同步 + 异步如何混用? | B6 权衡 |
| Compound Control | 多个反馈环如何协同? | 控制论 Ch 5 |
模式的选型框架
模式选型 = 3 个问题
1. 一致性需求?强 → Saga + 补偿 / 弱 → 事件最终一致
2. 查询复杂度?高 → CQRS(读模型专门优化)
3. 协作紧密度?紧 → 同步 RPC / 松 → 事件驱动阅读顺序
tactical-mapping (从 L1 战术到 L2 模式)
↓
saga (分布式事务)
↓
cqrs-es (读写分离)
↓
event-driven-workflow (事件驱动)
↓
event-request-response-hybrid (混合)
↓
compound-control (复合控制)与其他 group 的关系
- 上游:03-boundaries(契约 → 模式选型)
- 下游:05-quality(模式 → 质量属性影响)、L3(模式 → 代码实现)
关键洞察
模式不是"越多越好"——是"用了能换什么"—— 用 Saga 换一致性,但增加调试复杂度 用 CQRS 换查询性能,但增加数据一致性挑战 每个模式都是一次"用复杂度换特性"的交易。
相关链接
- L2 Boundaries——契约 → 模式
- L2 Quality——模式 → 质量属性
- V2 B6 权衡——模式选型是权衡
- V2 B7 表达——事件驱动是表达