Agent Skills
返回列表
💻

事件存储设计指南

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/event-store-design。

技能介绍

事件溯源里,存储层往往被低估

聚合状态可以重建,但前提是事件流持久化可靠:只能追加、按流有序、能版本冲突检测,还要支撑订阅与重复写入。团队在选型 EventStoreDB、PostgreSQL、Kafka 或 DynamoDB 时,常见问题不是「能不能存」,而是查询模式、乐观并发和模式演化是否与业务一致。

技能如何组织设计工作

本技能把设计拆成可执行的步骤:先明确目标、约束与输入,再对照核心需求表(仅追加、有序、版本化、订阅、幂等)校验方案,并给出技术对比与验证要点。

  • 架构与需求:区分按流排序与全局排序,从第一天做事件版本控制
  • 实现模板:PostgreSQL 表模式、Python 实现、EventStoreDB、DynamoDB 等参考路径
  • 最佳实践:流 ID 含聚合类型(如 Order-{uuid})、关联/因果 ID、按查询模式建索引;避免更新/删除事件、巨型 payload、跳过 OCC 或忽略背压

更细的示例见 resources/implementation-playbook.md。

适用边界

任务与事件存储设计无关,或需要完全另一套领域/工具时,不必启用本技能。Kafka 适合高吞吐流处理但不适合按流查询;Marten 绑定 .NET;PostgreSQL 等需在现有栈上手动实现事件存储语义。

使用场景

  • 新服务采用事件溯源,要在 EventStoreDB、PostgreSQL、Kafka 间做选型并定读写模型
  • 已有 Postgres 集群,需设计仅追加的事件表、流版本号与乐观并发写入策略
  • 按流重放聚合状态时,要规划流 ID 命名、关联 ID 与幂等去重,避免重复投递写脏数据
  • 事件订阅链路出现慢消费者,需评估背压、索引与是否把大 payload 移出事件体

适合人员

  • 负责订单/账务等聚合的领域服务,要把状态变更落成不可变事件并支持并发冲突检测的后端工程师
  • 在评审架构方案时,需对比 EventStoreDB 与自建关系库事件表成本与查询能力的软件架构师
  • 在 AWS 上规划无服务器事件流水,需评估 DynamoDB 分区键与按流查询限制的云端工程师
  • 维护 .NET 业务系统、在 Marten 与自研事件存储之间做技术决策的团队技术负责人