关于 event-driven-architecture
用于设计有界上下文和微服务间事件驱动集成的技能,指导消息模式、事件契约、可靠性、协调模式及安全运维方面的决策。
主要功能
- 01选择消息模式与代理
- 02设计事件类型和模式
- 03规划排序与投递保证
- 04设计幂等及 Outbox 模式
- 05选择编排、协作或 Saga
- 06规划模式治理与重放运维
适用场景
- 01设计服务间的事件集成
- 02制定事件模式兼容规则
- 03规定重试和重复事件的处理方式
- 04规划死信队列重放流程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rade-nugroho/ agentic-enteprises-skill --skill event-driven-architecture安装后在 Claude Code 中输入/event-driven-architecture确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/event_driven_architecture_scope.mdevent_sourcing_and_cqrs.mdmessaging_patterns_and_brokers.mdorchestration_choreography_sagas.mdreliability_idempotency_outbox.mdschema_governance_operations.md详细介绍
事件驱动架构
适用场景
- 设计有界上下文或微服务之间的事件驱动集成
- 选择发布/订阅还是点对点、主题还是队列,以及消息代理的能力
- 建模领域事件、集成事件,以及命令与事件的语义
- 在架构层面应用事件溯源或 CQRS(而非仅学习框架教程)
- 定义架构、兼容规则和事件架构版本控制策略
- 指定顺序、分区键和传递保证(至少一次等)
- 设计幂等消费者、去重机制,并权衡恰好一次
- 实现事务发件箱或收件箱,以确保可靠发布/消费
- 在模式层面决定采用编排还是协同,以及 saga 补偿
- 安全地运行死信队列、重放和流重新处理
- 区分流处理(Kafka Streams、Flink)与离散业务事件
不适用场景
- 仅实现微服务代码、gRPC/REST API 或十二要素可部署应用 →
microservices-developer - 仅设计企业 iPaaS 中心、规范模型、B2B 合作伙伴 API 或 API 网关项目 →
enterprise-integration-api-developer - 映射 X12/EDIFACT 段、AS2/VAN,或进行 EDI 合作伙伴认证 →
edi-engineer - 不涉及事件/消息架构的通用应用功能开发 →
senior-software-engineer - 运行涉密、物理隔离的流水线、ATO 证据和授权晋级 →
classified-software-devsecops-engineer - 制定 VRP、MIP、调度或优化求解器 →
operations-research-algorithm-developer - 仅处理 CI/CD YAML、GitOps 和发布自动化 →
devops - 配置 Landing Zone、VPC 和托管云资源 →
cloud-engineer
相关技能
| 需求 | 技能 |
|---|---|
| 服务边界、gRPC/REST、熔断器、契约测试 | microservices-developer |
| 企业集成中心、OpenAPI/AsyncAPI、iPaaS、B2B 网关 | enterprise-integration-api-developer |
| EDI 标准和合作伙伴文件交换 | edi-engineer |
| 不专注于 EDA 的应用代码和重构 | senior-software-engineer |
| 涉密 DevSecOps 和制品晋级 | classified-software-devsecops-engineer |
| 运筹学模型、路径规划、分配求解器 | operations-research-algorithm-developer |
| Kafka/RabbitMQ 运维平台(消息代理、K8s) | platform-engineer、devops |
| 跨系统 ADR 和 NFR 签核 | senior-system-architecture |
| 流水线安全和供应链 | devsecops |
核心工作流
1. 确定范围和事件边界
定义事件类型、生产者/消费者、同步与异步边界,以及非目标。
参见 references/event_driven_architecture_scope.md。
2. 消息传递和消息代理
选择模式、主题/队列、分区方式和合适的消息代理(Kafka、Pulsar、SNS/SQS 等)。
参见 references/messaging_patterns_and_brokers.md。
3. 事件溯源和 CQRS
确定何时使用写模型、投影、快照,以及读模型的一致性。
参见 references/event_sourcing_and_cqrs.md。
4. 可靠性、幂等性和发件箱
传递语义、去重、发件箱/收件箱和故障处理。
参见 references/reliability_idempotency_outbox.md。
5. 编排、协同和 saga
协调长时间运行的流程,同时避免将总线变成分布式单体。
参见 references/orchestration_choreography_sagas.md。
6. 架构治理和运维
为事件进行版本控制,运行 DLQ、重放,并确保事件流水线的可观测性。
参见 references/schema_governance_operations.md。
输出
- 事件目录 — 事件名称、架构版本、生产者、消费者、SLA、PII 分类
- 上下文图 — 服务、主题/队列、同步回退方案、信任区域
- 一致性说明 — outbox/saga/choreography 方案,以及补偿机制和幂等键
- 分区与排序规范 — 键、保证、分区热点风险
- 架构兼容性矩阵 — 向后/向前兼容规则、弃用时间线
- 运维手册 — DLQ 清理、重放流程、延迟告警、有毒消息处理
原则
- 优先采用明确的契约(架构、AsyncAPI/CloudEvents 元数据),而非隐式 JSON 数据块
- 默认将消费者设计为幂等;将恰好一次视为有界且可度量的目标
- 明确区分命令和事件——事件是事实;命令用于请求执行工作
- 避免通过总线进行频繁的编排通信;saga 用于补偿,而非掩盖缺失的边界
- 让故障可观测——关联 ID、结构化错误、包含可操作负载的 DLQ
- 重放是产品功能——重新处理前,记录排序规则、副作用和去重方式
评论
支持 Markdown