2.5.2 事件溯源

你可以将事件看作通知,这个通知包含接收事件的服务要处理的附加数据。然而,还有另一种看待事件的方式:状态的改变。如果能够知道错误发生时的状态以及请求的更改,那么调试应用程序的逻辑问题会很容易。这是事件溯源(event sourcing)的好处之一。本质上,它通过简单地记录系统中发生的所有事件来记录系统产生的所有变化。

通常,你会发现服务不需要在数据库中持久化其状态了,因为将事件存储在系统的其他地方就足够了。即使要持久化服务状态,也可以异步完成。事件溯源的另一个好处是可以免费获得完整的审计日志。事件溯源架构如图2.3所示。

图2.3 事件溯源架构(提供应用程序状态的统一视图,它可用于创建定期快照以加速系统恢复)

由于数据同步需求的减少,事件溯源系统通常提供较低的延迟,这使得它们非常适合交易系统和活动跟踪器等。

现在,我们来学习另一种流行的架构风格。