上一题下一题

事件溯源中事件日志不可变的含义以及与普通审计日志的区别

旗舰版
来源:alibaba初级工程师CQRS审计日志事件日志不可变性事件溯源
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

事件溯源里的事件日志不可变,指的是业务事件一旦写入事件存储,就不能被更新或删除,只能追加新的事件。

比如订单从“已创建”变成“已支付”,不会去修改原来的订单状态记录,而是追加一条 OrderPaid 事件。后续如果发生退款,也不是修改支付事件,而是再追加 OrderRefunded 或补偿类事件。系统当前状态是通过按顺序回放这些事件计算出来的。

它的核心含义有几个点:

事件只追加,不修改 :事件日志是 append only 的。 历史过程完整保留 :可以知道系统状态是怎么一步步演变过来的。 状态可重建 :通过回放事件,可以还原任意时间点的业务状态。 修正错误靠补偿事件 :如果之前写错了事件,通常不会直接改历史数据,而是追加一条纠正事件。

它和普通审计日志的区别主要在于用途和地位不同。

普通审计日志通常是系统运行时顺便记录的辅助信息,比如谁在什么时间修改了什么数据,用于合规、排查问题、安全追踪等。它一般不是业务状态的来源,数据库里的当前状态才是主数据。审计日志丢失或不完整,可能会影响排查和合规,但通常不会直接导致业务状态无法恢复

登录后查看完整内容