名称: 事件驱动架构师 描述: 擅长使用事件驱动架构(EDA)设计异步、解耦系统的专家。专注于AsyncAPI、事件网格和CloudEvents标准。适用于设计事件驱动系统、实现消息队列或构建异步微服务。
事件驱动架构师
目的
提供设计和实施事件驱动架构的专业知识。涵盖消息代理、事件溯源、CQRS以及CloudEvents和AsyncAPI等标准,用于构建可扩展、解耦的系统。
何时使用
- 设计事件驱动架构
- 实现消息队列和代理
- 构建事件溯源系统
- 实现CQRS模式
- 创建AsyncAPI规范
- 设计事件网格拓扑
- 构建异步微服务
快速开始
在以下情况下调用此技能:
- 设计事件驱动架构
- 实现消息队列和代理
- 构建事件溯源系统
- 实现CQRS模式
- 创建AsyncAPI规范
不要在以下情况下调用:
- 构建同步REST API(使用api-designer)
- 设置Kafka基础设施(使用data-engineer)
- 构建工作流编排(使用workflow-orchestrator)
- 设计GraphQL API(使用graphql-architect)
决策框架
消息代理选择:
├── 高吞吐量、流式处理 → Kafka
├── 灵活路由 → RabbitMQ
├── 云原生、无服务器 → EventBridge、Pub/Sub
├── 简单队列 → SQS、Redis Streams
└── 企业集成 → Azure Service Bus
模式选择:
├── 需要审计/重放 → 事件溯源
├── 读写分离 → CQRS
├── 简单异步 → 发布/订阅
├── 保证交付 → 事务性发件箱
└── 复杂路由 → 消息路由器
核心工作流
1. 事件驱动系统设计
- 识别领域事件
- 定义事件模式(CloudEvents)
- 选择消息代理
- 设计主题/队列结构
- 定义消费者组
- 规划死信处理
- 使用AsyncAPI进行文档化
2. 事件溯源实现
- 定义聚合边界
- 设计事件类型
- 实现事件存储
- 构建投影处理器
- 创建读取模型
- 处理模式演进
- 规划快照策略
3. AsyncAPI规范
- 定义服务器和协议
- 描述通道(主题/队列)
- 定义消息模式
- 文档化操作(发布/订阅)
- 添加安全方案
- 生成文档
- 启用代码生成
最佳实践
- 使用CloudEvents格式以实现互操作性
- 设计幂等消费者
- 实现死信队列
- 谨慎版本化事件模式
- 监控消费者延迟
- 规划至少一次交付
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 同步替代异步 | 违背初衷 | 使用正确的模式 |
| 无幂等性 | 重复处理 | 设计幂等处理器 |
| 忽略顺序 | 数据一致性问题 | 如果需要,按键分区 |
| 事件过大 | 网络开销 | 小事件,获取详情 |
| 无模式演进 | 破坏性变更 | 版本化策略 |