EDM 实践指引(Adam Bellemare)
按概念递进,不按原书章节——读者认知路径:先懂"为什么",再懂"是什么",再懂"怎么做"。
原书 17 章被重新组织为 10 个概念层(E1-E10)。每层融合多章内容,按"读者什么时候需要这个概念"排序。
一、为什么 EDM 不是按章节读
原书章节顺序的局限:
- Bellemare 的章节是为"已懂事件驱动的人写的"
- ch09 看似讲 BC 边界,实际是 FaaS 章节
- ch13 看似讲自治事件,实际含实时查询
- 17 章 Part I-IV 主题分组对初学者仍然过细
概念递进的设计:
- 10 层从浅到深
- 后一层引用前一层,但不依赖后一层
- 每层有完整 9 段范本
二、概念递进 10 层
| 层 | 标题 | 回答什么问题 | 融合的 EDM 章 |
|---|---|---|---|
| E1 | 入门:为什么事件驱动微服务 | 解决什么?什么时候用? | ch01 |
| E2 | 微服务基础:拓扑 + 事件类型 + Single Writer | 微服务是什么?事件 3 类型? | ch02 |
| E3 | 通信契约:Schema + 演化 | 跨服务怎么通信? | ch03 |
| E4 | 集成老系统:CDC + 妥协 | 旧系统怎么接入? | ch04 + ch10 |
| E5 | 处理基础:转换 + 确定性 | 流怎么处理? | ch05 + ch06 |
| E6 | 状态物化 | 状态怎么管理? | ch07 |
| E7 | 跨服务工作流 | 跨服务业务怎么做? | ch08 |
| E8 | 部署 + FaaS + 集群架构 | 怎么部署? | ch09 + ch11 + ch14 + ch16 |
| E9 | 流处理框架与实时查询 | 用什么框架? | ch12 + ch13 |
| E10 | 测试与总结 | 怎么测试? | ch15 + ch17 |
三、当前已落地
| 层 | 状态 | 路径 |
|---|---|---|
| E1 入门 | ✅ mature | /book-guides/event-driven/e1-getting-started |
| E2 微服务基础 | ✅ mature | /book-guides/event-driven/e2-microservice-basics |
| E3 通信契约 | ✅ mature | /book-guides/event-driven/e3-communication-contracts |
| E4 集成老系统 | ✅ mature | /book-guides/event-driven/e4-integrating-legacy |
| E5 处理基础 | ✅ mature | /book-guides/event-driven/e5-processing-basics |
| E6 状态物化 | ✅ mature | /book-guides/event-driven/e6-state-materialization |
| E7 跨服务工作流 | ✅ mature | /book-guides/event-driven/e7-cross-service-workflows |
| E8 部署 + FaaS + 集群架构 | ✅ mature | /book-guides/event-driven/e8-deployment-faas-cluster |
| E9 流处理框架与实时查询 | ✅ mature | /book-guides/event-driven/e9-streaming-realtime |
| E10 测试与总结 | ✅ mature | /book-guides/event-driven/e10-testing-conclusion |
四、每层范本(9 段)
每层文档按以下 9 段展开:
# 章节名## 一句话—— 一句话总结本章核心## 这本书在这一层说了什么—— 融合多章的核心论点## 是什么—— 概念定义(忠实原书)## 为什么—— 为什么要这个(书里的理由)## 怎么做—— 工程可执行步骤(来自书)## 什么时候用 / 什么时候不用—— 实践判断## 看不见的地方—— 失效模式## 相关节点—— 骨架 A/B 节点映射
五、与其他实践指引的关系
IDDD(DDD 战略战术)
↓ 领域事件 + 集成 BC
EDM(事件驱动基础设施)
↓ Schema 演化 + Saga + CDC
├── 工程层:单写者 + 拓扑 + 框架选型
└── 哲学层:涌现 + 解耦 + 自治互补关系:
- IDDD L4 上下文映射 ↔ EDM E4 CDC + E7 Saga
- IDDD L6 聚合 ↔ EDM E2 Single Writer
- IDDD L8 跨 BC 集成 ↔ EDM E8 混合架构
- IDDD L3 BC ↔ EDM E3 Schema 演化
六、原书 17 章与 10 层映射
| 原书章 | 主题 | 归属 E 层 |
|---|---|---|
| ch01 | Why Event-Driven Microservices | E1 |
| ch02 | Event-Driven Microservice Fundamentals | E2 |
| ch03 | Communication and Data Contracts | E3 |
| ch04 | Compromises for Data Liberation (CDC) | E4 |
| ch05 | Transformations | E5 |
| ch06 | Synchronizing Distributed Timestamps | E5 |
| ch07 | Materializing Global State | E6 |
| ch08 | Choreography / Orchestration / Saga | E7 |
| ch09 | FaaS + BC 成员 | E8 |
| ch10 | Integration with Legacy | E4 |
| ch11 | 集群架构(Hosted / Cluster / CMS) | E8 |
| ch12 | Lightweight Framework | E9 |
| ch13 | 自治事件 + 反应事件 + 实时查询 | E9 |
| ch14 | 基础设施程序化 | E8 |
| ch15 | Testing | E10 |
| ch16 | CI/CD + 部署 | E8 |
| ch17 | Conclusion | E10 |
七、与 V2 EDM 实践指引的关系
V2 时期(meta/source/event-driven/)按章节顺序写,每章 70-120 行。
V4 概念递进 vs V2:
- V2 = 17 文件 / 1688 行 = 平均 99 行/章
- V4 = 10 文件 / ~13000 行 = 平均 1300 行/层
每层提升:13 倍深度(基于原书精读 + 概念重组 + 9 段范本)。