事件溯源:让事件驱动架构更强大
503 | 事件溯源:让事件驱动架构更强大场景引入银行的"后悔药":想象银行系统,用户转账1000元。传统方式:记录余额账户余额 = 10000元 转账后 = 9000元 问题:如果怀疑转账出错,怎么查? → 只能查到"现在是9000",查不到"转了1000"事件溯源方式:记录事件事件1:存入5000元 事件2:存入5000元 事件3:转出1000元 余额 = 5000 + 5000 - 1000 = 9000元 好处: - 可以重放任意时刻 - 可以查任意历史记录 - 可以审计任意操作什么是事件溯源Event Sourcing = 事件溯源不存储当前状态,而是存储导致状态变更的事件序列传统方式: 状态:账号余额 = 9000元 事件溯源: 事件列表: 1. 创建账号(余额=0) 2. 存入5000元(余额=5000) 3. 存入5000元(余额=10000) 4. 转出1000元(余额=9000)核心概念