mcpField
E
event-driven-architecture

event-driven-architecture

github.com/rade-nugroho开发1239 次安装23 周前更新
代码仓库

关于 event-driven-architecture

用于设计有界上下文和微服务间事件驱动集成的技能,指导消息模式、事件契约、可靠性、协调模式及安全运维方面的决策。

主要功能

  1. 01选择消息模式与代理
  2. 02设计事件类型和模式
  3. 03规划排序与投递保证
  4. 04设计幂等及 Outbox 模式
  5. 05选择编排、协作或 Saga
  6. 06规划模式治理与重放运维

适用场景

  1. 01设计服务间的事件集成
  2. 02制定事件模式兼容规则
  3. 03规定重试和重复事件的处理方式
  4. 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.md
event_sourcing_and_cqrs.md
messaging_patterns_and_brokers.md
orchestration_choreography_sagas.md
reliability_idempotency_outbox.md
schema_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