
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.
- Installs
- 143
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/full-stack-skills/ddd-skills --skill ddd-event-storming- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads ddd-event-storming automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
DDD Event Storming
Event Storming (事件风暴) 是由 Alberto Brandolini 发明的协作式领域探索工作坊方法论。通过跨角色(领域专家 + 技术团队)的即时贴协作,在短时间内完成复杂业务领域的建模,产出聚合、限界上下文和领域事件。
Workflow
6-Step Event Storming Workshop (约 2.5 小时):
- Step 1: 混沌探索 (30min) — 自由发散,贴出所有领域事件(🟠 橙色便签)
- Step 2: 时间线排序 (20min) — 按时间顺序排列事件,识别主线与分支
- Step 3: 关键事件标记 (15min) — 标记业务流程的转折点(★ 标记)
- Step 4: 命令与角色 (30min) — 为每个事件补全命令 + 角色
- Step 5: 聚合发现 (30min) — 聚类相关事件为聚合,命名聚合根
- 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
- 跳过 Brainstorming 直接讨论: 必须先自由发散再排序。过早讨论事件正确性会扼杀创意。
- 技术人员主导: 必须由领域专家主导,开发做记录和提问。开发主导的模型不是真实业务。
- CRUD 式命令: 不要写 "CRUD Order",命令应该是业务动作:
PlaceOrder、CancelOrder。 - 遗忘 Hot Spot: 所有分歧和不确定的边界必须记录为紫色便签。不记录的 Hot Spot 会后被遗忘。
- 跳过 Aggregate Discovery: 做完 Step 4 就结束。没有 Step 5 的聚类,事件风暴只是漂亮的便签墙。
- 领域专家缺失: 这是致命错误。没有领域专家参与事件风暴会产出错误的领域模型。
- 试图一次覆盖整个企业: 范围太大会导致浅尝辄止。建议从核心子域开始,一个 BC 一次。
- 产出物不整理 → 便签墙变装饰品: 工作坊结束后 24h 内必须将产出数字化,否则记忆会丢失。用
workshop-output-template.md模板快速整理。 - 没有通用语言记录: 风暴中自然产生的术语定义的共识,必须记录下来成为 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/ 和 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 个工作坊案例(电商订单履约、保险投保、用户中台、物流配送、金融支付)
FAQ
What does the ddd-event-storming skill do?
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.
How do I install ddd-event-storming?
Run npx skills add https://github.com/full-stack-skills/ddd-skills --skill ddd-event-storming in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ddd-event-storming/ (personal) or .claude/skills/ddd-event-storming/ (project).
Which AI agents can use ddd-event-storming?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is ddd-event-storming safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains ddd-event-storming?
It is published by full-stack-skills in full-stack-skills/ddd-skills. It has 143 recorded installs.
More from full-stack-skills/ddd-skills
ddd-code-reviewer
full-stack-skills/ddd-skills
DDD code review and anti-pattern detection — anemia model detection, layered compliance checking, aggregate design review, rich model verification, scoring system (5 dimensions), and ArchUnit automated validation. Use when user asks about code review, 代码审查, DDD review, 架构审查, anti-pattern detection, 反模式检测, or needs to check if code follows DDD.
ddd-api-designer
full-stack-skills/ddd-skills
API design from domain model — CQRS command/query separation, REST API endpoint design, data object conversion chain (PO→DO→DTO→VO), unified response format, OpenAPI/Swagger generation, BFF pattern, API versioning, and security design. Use when user asks about API design, REST API, OpenAPI, BFF, DTO design, 接口设计, or data object conversion.
ddd-architecture-clean
full-stack-skills/ddd-skills
Comprehensive guidance for Clean Architecture (整洁架构) — Robert C. Martin's Clean Architecture with Enterprise Business Rules, Use Cases, Interface Adapters, and Frameworks layers. Covers core entities, use case interactors, dependency rules, and full implementation steps with Java/Spring Boot examples. Use when user asks about Clean Architecture, 整洁架构, Robert Martin, Uncle Bob, use case driven architecture, or needs to implement DDD with clean architecture.
ddd-architecture-selector
full-stack-skills/ddd-skills
Architecture selection decision guide — help users choose from 5 DDD architectures (Layered/Onion/Hexagonal/Clean/COLA) with decision matrix, team size mapping, domain classification (core/generic/supporting), microservice splitting recommendation, and CQRS level suggestion. Use when user asks about architecture selection, 架构选型, COLA vs 六边形, cleaner architecture vs onion, 微服务拆分, or which architecture to use.
ddd-testing-strategist
full-stack-skills/ddd-skills
DDD testing strategy — domain model unit testing, aggregate root testing, repository testing with mocks, application service integration testing, adapter E2E testing, test pyramid for DDD layered/hexagonal/clean architectures, and Test-Driven Domain Design (TDDD). Use when user asks about testing strategy, 测试策略, DDD testing, aggregate test, repository test, test-driven domain design, or needs to test DDD applications.
ddd-architecture-doc
full-stack-skills/ddd-skills
DDD architecture documentation generation — C4 model diagrams (Context/Container/Component/Code), ADR (Architecture Decision Records), domain model documentation, API documentation, architecture decision log, and team communication templates. Use when user asks about architecture documentation, 架构文档, ADR, C4 diagram, domain model doc, 架构决策记录, or needs to document DDD architecture for team.
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.