用途:该技能用于在设计、实现和运维事件驱动系统时提供模式指导,覆盖异步解耦通信、事件溯源、CQRS、消息代理、Saga 协调与最终一致性管理。适用于设计分布式系统、微服务、需最终一致性与高扩展性的系统、跨服务分布式事务、实时事件流与数据管道、发布订阅或消息队列架构,以及复杂事件流的响应式系统。
主要能力与核心原则:以事件为一等公民,事件是不可变事实,用过去时命名(如 OrderCreated、PaymentProcessed);最终一致性以时间换取可用性与扩展性;通过事件实现松耦合与异步通信;以“发生了什么”而非“要做什么”来设计。
使用方式:资料给出工作流——设计阶段识别事件、划定边界、选择模式与技术;实现阶段定义带版本与关联 ID 的事件结构,实现仅追加存储与乐观并发,构建读模型投影,编写幂等且至少一次投递的处理程序,用 Saga 做补偿事务;运维阶段监控事件延迟、处理时间与失败率,支持重放、多版本并存、按聚合 ID 分区横向扩展,并隔离测试处理程序。参考文档涵盖事件基础、事件溯源、CQRS、消息代理(RabbitMQ、Kafka、SQS/SNS)、Saga、编排与协同、最终一致性、最佳实践与反模式,路径在 skills/event-driven-architecture/references/ 下。
模式选择:需要完整审计、时点查询、多投影或重放时用事件溯源;读写比高(10:1+)、查询复杂或需独立扩展读时用 CQRS;跨服务分布式事务、无需 2PC 的原子性、多步工作流或需补偿时用 Saga;简单流程(2-4 步)、高自治用协同,复杂流程(5+ 步)、顺序依赖、需集中可见性用编排。
限制与常见错误:避免用命令代替事件、可变事件或缺少版本、缺少关联 ID;不要假设即时一致性、不处理重复投递、处理程序缺少幂等;避免同步事件链、事件耦合具体服务实现、无补偿策略;避免无重放能力、无延迟监控、无 schema 注册与版本管理。资料未提供具体收费、平台或安装命令。