You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Axon框架是先将事件存入Event Store还是先发布到Event Bus?

Axon框架事件存储与发布的执行顺序

核心结论非常明确:Axon会先将事件写入Event Store完成持久化,全部写入成功后才会把事件发布到Event Bus,这个顺序是框架硬编码保证的,没有配置项可以调换,核心是为了避免事件发布成功但持久化失败导致的系统状态不一致、事件溯源链路断层问题。

具体执行流程如下:

  • 聚合根完成命令处理逻辑,生成待提交的领域事件集合
  • 事件提交组件开启本地事务,将所有待提交事件批量序列化写入Event Store
  • 等待Event Store返回写入成功响应、提交事务完成后,才会触发事件发布动作
  • 事件被推送到Event Bus后,才会分发给所有订阅的事件处理器,包括查询投影、Saga编排器、外部系统消息转发适配器等
  • 如果事件写入Event Store阶段出现任何异常(存储节点故障、序列化失败、并发版本冲突等),整个提交流程直接回滚,不会有任何事件被发布到Event Bus

常见误区说明:哪怕你使用的是对接Kafka、RabbitMQ这类外部消息中间件的分布式事件总线实现,这个顺序依然严格生效。Axon不会在事件落库前就把消息发给外部中间件,所有跨节点的事件转发动作都只会在Event Store写入确认后执行。

你绘制时序图时可以直接按照「聚合生成事件→Event Store存事件→存库成功→Event Bus发布事件→下游处理器消费事件」的顺序画,不会有顺序问题。

内容的提问来源于stack exchange,提问作者miy33t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:12:09