SuperAPI AI 工具集

event-driven-architect

通用与其它

查看项目

更新于 10-15 10:39

技能介绍

Event-Driven Architect

用途

该技能提供事件驱动架构设计与实现方面的专业知识,涵盖消息代理、事件溯源、CQRS,以及 CloudEvents、AsyncAPI 等标准,用于构建可扩展、解耦的系统。

适用场景

在以下情况调用本技能:

  • 设计事件驱动架构
  • 实现消息队列与消息代理
  • 构建事件溯源系统
  • 实现 CQRS 模式
  • 创建 AsyncAPI 规范
  • 设计事件网格(Event Mesh)拓扑
  • 构建异步微服务

在以下情况不要调用本技能:

  • 构建同步 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
  • 简单异步 → 发布/订阅
  • 保证投递 → 事务性发件箱(Transaction Outbox)
  • 复杂路由 → 消息路由器

核心工作流

  1. 事件驱动系统设计
  • 识别领域事件
  • 定义事件模式(CloudEvents)
  • 选择消息代理
  • 设计主题/队列结构
  • 定义消费者组
  • 规划死信处理
  • 使用 AsyncAPI 编写文档
  1. 事件溯源实现
  • 定义聚合边界
  • 设计事件类型
  • 实现事件存储
  • 构建投影处理器
  • 创建读模型
  • 处理模式演进
  • 规划快照策略
  1. AsyncAPI 规范
  • 定义服务器与协议
  • 描述通道(主题/队列)
  • 定义消息模式
  • 记录操作(发布/订阅)
  • 添加安全方案
  • 生成文档
  • 启用代码生成

最佳实践

  • 使用 CloudEvents 格式以实现互操作性
  • 设计幂等消费者
  • 实现死信队列
  • 谨慎地对事件模式进行版本管理
  • 监控消费者滞后(consumer lag)
  • 为至少一次投递做好规划

反模式

反模式 | 问题 | 正确做法

  • 以同步方式实现异步 | 违背初衷 | 使用合适的模式
  • 无幂等性 | 重复处理 | 设计幂等处理器
  • 忽略顺序 | 数据一致性告警 | 如需要则按 key 分区
  • 事件体过大 | 网络开销 | 使用小事件,按需获取详情
  • 无模式演进 | 破坏性变更 | 制定版本策略