Skip to main content

ddd-event-storming

Event Storming workshop facilitation guide — collaborative domain exploration methodology with 6-step process (chaos exploration/timeline/pivotal events/commands & actors/aggregate discovery/bounded context), standardized sticky note color conventions (orange/blue/yellow/green/pink/purple), workshop preparation and facilitation tips, and digital tool recommendations. Use when user asks about event storming, 事件风暴, workshop, 工作坊, domain exploration, collaborative modeling, or needs to organize a DDD discovery workshop.

Zur Installation springen

Quellinformationen

Repository
full-stack-skills/ddd-skills
Letzte Quellaktivität
5. Juni 2026 um 11:41
Erkannte Sprache von SKILL.md
Mehrsprachig
Sterne
5
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
16 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
ddd-event-storming
description
Event Storming workshop facilitation guide — collaborative domain exploration methodology with 6-step process (chaos exploration/timeline/pivotal events/commands & actors/aggregate discovery/bounded context), standardized sticky note color conventions (orange/blue/yellow/green/pink/purple), workshop preparation and facilitation tips, and digital tool recommendations. Use when user asks about event storming, 事件风暴, workshop, 工作坊, domain exploration, collaborative modeling, or needs to organize a DDD discovery workshop.
license
Apache-2.0
# DDD Event Storming Event Storming (事件风暴) 是由 Alberto Brandolini 发明的协作式领域探索工作坊方法论。通过跨角色(领域专家 + 技术团队)的即时贴协作,在短时间内完成复杂业务领域的建模,产出聚合、限界上下文和领域事件。 ## Workflow 6-Step Event Storming Workshop (约 2.5 小时): 1. **Step 1: 混沌探索** (30min) — 自由发散,贴出所有领域事件(🟠 橙色便签) 2. **Step 2: 时间线排序** (20min) — 按时间顺序排列事件,识别主线与分支 3. **Step 3: 关键事件标记** (15min) — 标记业务流程的转折点(★ 标记) 4. **Step 4: 命令与角色** (30min) — 为每个事件补全命令 + 角色 5. **Step 5: 聚合发现** (30min) — 聚类相关事件为聚合,命名聚合根 6. **Step 6: 限界上下文划分** (20min) — 按耦合度划分 BC,确定上下文映射 **产出物**: 事件时间线 / 聚合候选 / BC 映射 / Hot Spots **参与角色**: 领域专家(2-3人) / 开发(2-3人) / 产品(1人) / 架构师(1人) ## When to Use | 适用场景 | 不适用场景 | |---------|-----------| | 新项目启动,需要领域建模 | 领域知识已充分文档化,直接 `domain-designer` | | 已有系统重构,业务不清晰 | 单人开发,无利益相关者参与 | | 跨团队协作,需要统一语言 | 纯技术工具开发,无业务领域 | | 微服务拆分,需确定服务边界 | 简单 CRUD 项目,领域模型清晰 | ### Skill Boundary | 技能 | 定位 | 使用时机 | |------|------|---------| | `ddd-event-storming` | 工作坊主持 + 领域探索 | 项目前期,多角色协作 | | `ddd-domain-designer` | 聚合详细设计 + 代码映射 | 工作坊之后,开发之前 | ## Audience This skill is designed for: **Backend developers** (implementing DDD architectures), **Software architects** (evaluating and selecting patterns), **Tech leads** (reviewing team implementations), and **DDD beginners** (learning domain-driven design fundamentals). ## 6-Step 流程详解 ### Step 1: 混沌探索 — 30 min 参与者自由发散,用 🟠 **橙色便签** 贴出所有已知领域事件(动词过去式,如 OrderPlaced)。**禁止讨论**——主持人必须严格执行"先贴再说"原则。 ``` 活动: 自由贴出领域事件 格式: 动词过去式 (OrderPlaced, PaymentCompleted) 规则: 不讨论、不质疑、不排序 目标: 覆盖所有业务场景,包括异常流 ``` ### Step 2: 时间线排序 — 20 min 将所有 🟠 事件便签按时间顺序排列,识别主线与分支。主线用箭头连接,异常流从主线分叉标注条件。 ### Step 3: 关键事件标记 — 15 min 标记业务流程的转折点,这些是关键事件(★ 标记),是领域模型的核心锚点。特征:触发后续流程、改变实体状态、跨上下文通信。 ### Step 4: 命令与角色 — 30 min 为每个事件添加 🔵 **蓝色命令**(触发动作)和 🟡 **黄色角色**(执行者)。自动触发的事件也有命令发起者(System、Scheduler、ExternalSystem)。 ``` 👤 Customer → 🔵 Create Order → 🟠 OrderPlaced 👤 Admin → 🔵 Approve Refund → 🟠 RefundApproved 🤖 System → 🔵 Deduct Stock → 🟠 InventoryDeducted ``` ### Step 5: 聚合发现 — 30 min 将相关的事件、命令聚类为聚合,并用业务语言命名聚合根。聚合是事务一致性边界——边界内强一致,边界间最终一致。 ``` ┌─ Order Aggregate ────────────────────────┐ │ 🟠 OrderPlaced / 🟠 OrderPaid │ │ 🟠 OrderCancelled / 🟠 OrderCompleted │ │ 🔵 PlaceOrder / 🔵 PayOrder │ │ 👤 Customer │ │ 聚合根: Order | 不变式: 已取消不可支付 │ └──────────────────────────────────────────┘ ``` ### Step 6: 限界上下文划分 — 20 min 根据聚合间的耦合度和业务语言变化划出 BC 边界,标注映射关系。上下文映射类型:Partnership、Shared Kernel、Customer-Supplier、Conformist、Anti-Corruption Layer、Open Host Service。 ## 便签颜色规范 | 颜色 | 含义 | 格式要求 | 示例 | |------|------|---------|------| | 🟠 橙色 | Domain Event (领域事件) | 动词过去式 | OrderPaid, UserRegistered | | 🔵 蓝色 | Command (命令) | 动词原形 | PayOrder, RegisterUser | | 🟡 黄色 | Actor/Role (角色/参与者) | 名词 | Customer, System, Admin | | 🟢 绿色 | Read Model (读模型/视图) | 名词 | OrderDetailPage, Dashboard | | 🔴 粉色 | External System (外部系统) | 系统名 | Alipay, WeChatPay | | 🟣 紫色 | Constraint/Hot Spot (约束/争议) | 业务规则语句 | Max ¥50000 per order | ## Workshop Outputs 产出物:Event Timeline (Mermaid 序列图)、Aggregate Candidates、Bounded Context Map (Mermaid C4 图)、Context Mapping、Hot Spot List、Ubiquitous Language 术语表。 ## Facilitation Tips - **会前**: 准备 5+ 色便签 + 大白板/Miro 模板;必须确保领域专家参与;明确工作坊范围;提前 5 分钟介绍颜色规范和流程 - **会中**: Step 1 禁止讨论(最常见的失败原因);用业务语言优先;Hot Spot 用紫色便签标记不现场解决;严格时间盒管理;注意保持能量 - **会后**: 立刻拍照存档;24h 内将产出数字化为领域文档;安排 Hot Spot 跟进会;将产出物作为 `ddd-domain-designer` 的输入 ## Online Tool Recommendations Miro(分布式团队,推荐)| Mural(视频会议集成)| draw.io(免费轻量)| Physical Whiteboard(同地团队首选) ## Relationship with ddd-domain-designer 推荐路径: event-storming (工作坊产出) → domain-designer (聚合详细设计 + 代码落地) → Architecture Skill (架构实现) event-storming 聚焦协作工作坊主持(领域专家 + 全体团队),产出便签墙、事件列表、BC 划分(概念级);domain-designer 聚焦开发者聚合设计(开发者 + 架构师),产出代码结构、聚合类、仓储接口(代码级)。 ## Customization | 场景 | 建议调整 | |------|---------| | 小型团队(3-5人) | 合并 Step 1+2 为 20min+15min;Skip Step 6 直接讨论 | | 大型团队(10+人) | Step 1 延长至 45min 分组并行贴便签;Step 6 增加 10min 分组汇报 | | 时间受限(1小时) | 只做 Step 1-3(事件发散+排序),后续步骤单独安排 | | 复杂领域(多 BC) | 每个 BC 单独一次工作坊,不要试图一次覆盖 | | 跨语言团队 | 便签使用双语(中文事件+英文术语),以中文共识为准 | ## Quick Start 直接把需求发给 AI,以下开场白可直接使用: ``` "帮我组织一个电商订单履约的事件风暴工作坊,需要 6 步流程" "我要做一个保险投保领域的事件风暴,领域专家有 2 位" "做一次用户中台的事件风暴,重点关注认证和权限" "之前做完了物流配送的事件风暴,帮我整理产出物" ``` 如果你不确定从哪里开始,直接说"帮我做事件风暴",AI 会自动引导你完成。 ## Security & Safety This skill is pure documentation. It contains no executable scripts, collects no user data, accesses no external services or networks. ## Gotchas — Common Pitfalls 1. **跳过 Brainstorming 直接讨论**: 必须先自由发散再排序。过早讨论事件正确性会扼杀创意。 2. **技术人员主导**: 必须由领域专家主导,开发做记录和提问。开发主导的模型不是真实业务。 3. **CRUD 式命令**: 不要写 "CRUD Order",命令应该是业务动作:`PlaceOrder`、`CancelOrder`。 4. **遗忘 Hot Spot**: 所有分歧和不确定的边界必须记录为紫色便签。不记录的 Hot Spot 会后被遗忘。 5. **跳过 Aggregate Discovery**: 做完 Step 4 就结束。没有 Step 5 的聚类,事件风暴只是漂亮的便签墙。 6. **领域专家缺失**: 这是致命错误。没有领域专家参与事件风暴会产出错误的领域模型。 7. **试图一次覆盖整个企业**: 范围太大会导致浅尝辄止。建议从核心子域开始,一个 BC 一次。 8. **产出物不整理 → 便签墙变装饰品**: 工作坊结束后 24h 内必须将产出数字化,否则记忆会丢失。用 `workshop-output-template.md` 模板快速整理。 9. **没有通用语言记录**: 风暴中自然产生的术语定义的共识,必须记录下来成为 Ubiquitous Language 表。不记录等于没达成共识。 ## FAQ | 问题 | 回答 | |------|------| | 工作坊需要多长时间? | 一次 BC 约 2.5 小时完整 6 步。中型项目总周期约 2 周。 | | 没有正式领域专家怎么办? | 从业务人员/产品经理/有领域经验的高级开发中选择。 | | 线上和线下哪个更好? | 线下(实体白板)互动感最强,线上(Miro)可异步协作。 | | 需要多少参与者? | 最小 3 人(领域专家+开发+产品),最优 6-8 人。 | | 产出物如何使用? | 作为 `ddd-domain-designer` 的输入,进入聚合详细设计和代码落地。 | | 一个工作坊能覆盖多大范围? | 推荐一个 BC 一次。复杂领域可按子域拆分多个工作坊。 | | 主持人必须是 DDD 专家吗? | 不需要精通 DDD,但需要理解 6 步流程和颜色规范,具备引导能力。 | | 产出物怎么和代码对应? | 聚合候选 → domain-designer Aggregate,事件 → Domain Event 类,BC → 微服务模块。 | ## References 详情见 [references/](references/) 和 [examples/](examples/): - **Templates**: sticky-note-template.md, timeline-example.md, workshop-output-template.md - **Guides**: facilitation-checklist.md, workshop-deep-guide.md, context-mapping.md, partme-12-event-storming-modeling.md, ddd-strategic.md, clean-ddd-hexagonal-strategic.md - **Examples**: 5 个工作坊案例(电商订单履约、保险投保、用户中台、物流配送、金融支付)
Auf GitHub ansehen