StackSaga 事件存储架构 (Event Store Architecture)

事件存储 (Event Store) 是一种专门用于持久化连续状态变更事件(Events)而非单纯保存最终状态的日志或数据库引擎。 在 StackSaga 中,您可以直接通过指定独立 Schema 的方式复用您现有的主业务数据库作为事件存储,而无需单独购买或搭建一套完全独立的数据库基础设施。 这极大地降低了日常维护运维开销以及维护多套异构数据存储系统的技术复杂度。

在 StackSaga 中,您可以按照每个服务独立数据库 (Database per Service) 的标准微服务架构模式来配置事件存储。

每个服务独立事件存储架构图
尽管技术上允许多个微服务共用同一个事件存储库,但在生产环境中并不推荐这样做,因为这会引入潜在的高并发性能瓶颈、单点故障隐患,并且违背了微服务自治解耦的核心原则。

为什么要在事件存储中保存中间状态?

  • 高可靠的重试调度 (Reliable Retries)

    当业务执行因抛出 RetryableExecutorException(例如下游网络抖动或超时)而中断时,StackSaga 能够进行安全可靠的重播重试。 在分布式微服务架构中,诸如网络波动等瞬态异常绝不应直接视为不可逆的最终失败,因为分布式事务通常跨越多个远程微服务,任何依赖服务都可能出现短时不可达。 通过在事件存储中安全持久化每一步事务的状态,StackSaga 确保失败的执行能够可靠地从断点续跑重试,彻底杜绝数据丢失或状态不一致的隐患。

  • 追踪分析与全链路可观测性 (Analysis and Monitoring)

    StackSaga 提供了专门的可视化控制台——StackSaga Trace-Window 链路追踪窗口——用于实时监控分布式事务链路并诊断错误原因。 控制台展示的所有链路轨迹与执行快照均从事件存储中读取,所有历史记录均安全保存在其中供日常分析排错与合规审计。

事件存储同时供 数据库支持模块 以及 重试子系统 (Retry Subsystem) 共同访问。有关其具体的协作交互与使用场景,请参阅各自对应的文档章节。