1. 课程导论:分布式事务的挑战与事件风暴的价值

1.1 分布式事务:微服务架构下的“阿喀琉斯之踵”

在单体应用向微服务架构迁移的过程中,数据一致性从“本地事务”的强一致保障,演变为跨服务、跨数据库的分布式一致性问题。传统的 ACID 事务在分布式环境下面临严峻挑战:

维度 单体架构(本地事务) 微服务架构(分布式事务)
数据源 单一数据库 多个数据库 / 消息队列 / 缓存
一致性模型 强一致性(ACID) 最终一致性(BASE)
事务协调 数据库本地锁 + 二阶段提交 Saga / TCC / 事件驱动
故障影响 单点回滚 级联补偿 / 幂等重试
业务复杂度 低(ORM 管理) 高(需设计补偿与对账)
常见误区:许多团队试图用“分布式事务框架”(如 Seata AT 模式)直接解决所有一致性问题,却忽略了业务边界划分不合理导致的“长事务”与“锁冲突”。技术方案无法弥补领域建模的缺陷。

1.2 事件风暴:从业务混沌到领域模型的“手术刀”

事件风暴(Event Storming)是由 Alberto Brandolini 提出的一种协作建模方法,通过“领域事件”作为核心线索,将分散在业务专家、产品经理、开发人员脑中的知识,快速转化为可视化的领域模型。其核心价值在于:

  • 打破沟通壁垒:使用统一的“事件语言”,让非技术人员也能参与建模。
  • 快速发现聚合边界:通过“命令→事件→读模型”的流程,自然识别出高内聚的聚合根。
  • 暴露分布式事务痛点:在画布上标记“跨聚合的事件流”,提前识别需要最终一致性的边界。
课程实践:本课程将使用“事件风暴画布”作为核心工具,在建模阶段就标注出“需要分布式事务”或“可接受最终一致性”的决策点,避免后期架构返工。
事件风暴核心建模流程 事件风暴核心建模流程 业务专家 领域事件 命令 聚合 读模型 限界上下文 分布式事务 通过事件风暴,团队在 2-3 小时内即可识别出需要分布式事务的聚合边界

1.3 课程目标:从画布到代码的完整落地路径

本课程不是单纯的理论讲解,而是提供一套“可执行”的架构落地方法。你将学会:

  1. 用事件风暴画布建模:在画布上标注领域事件、命令、聚合、限界上下文,并标记“分布式事务热点”。
  2. 选择合适的事务模式:根据业务场景(强一致 vs 最终一致)选择 Saga、TCC、事件驱动或本地消息表。
  3. 生成可落地的架构设计:将画布模型映射为微服务接口、事件 Schema、补偿逻辑与幂等方案。
  4. 代码级实现:使用 Spring Boot + Axon Framework / Seata 等框架,实现事件溯源与分布式事务。
核心交付物:每章结束后,你将获得一个“事件风暴画布片段 + 对应的架构决策记录(ADR)+ 可运行的代码示例”。

1.4 学习路径图

课程共 30 章,分为 5 个阶段,建议按顺序学习:

阶段 章节范围 核心产出
基础篇 第 1-6 章 事件风暴画布 + 分布式事务模式对比表
建模篇 第 7-14 章 完整领域模型(含聚合、事件、命令)
架构篇 第 15-22 章 微服务拆分方案 + 事务编排设计
实现篇 第 23-28 章 可运行代码(Saga / TCC / 事件溯源)
总结篇 第 29-30 章 架构决策记录 + 实战复盘
课程学习路径图 课程学习路径图(5 阶段递进) 基础篇 第 1-6 章 建模篇 第 7-14 章 架构篇 第 15-22 章 实现篇 第 23-28 章 总结篇 第 29-30 章 每阶段产出物 基础篇:事件风暴画布 + 事务模式对比表 建模篇:领域模型 → 架构篇:微服务拆分 → 实现篇:可运行代码 → 总结篇:ADR

1.5 前置知识与工具准备

为获得最佳学习效果,建议你具备以下基础:

  • DDD 基础:了解实体、值对象、聚合、领域事件等基本概念。
  • 微服务经验:有 Spring Boot 或类似框架的使用经验。
  • 工具:Miro 或 Draw.io(用于事件风暴画布)、IntelliJ IDEA、Docker(用于本地运行示例)。
快速开始:如果你对 DDD 完全陌生,建议先阅读《领域驱动设计精粹》(Vaughn Vernon)前 3 章,或观看本课程附带的“DDD 速览”视频(第 0 章)。