【发布时间】:2020-09-24 19:37:28
【问题描述】:
我在https://martinfowler.com/eaaDev/EventSourcing.html 中读到了它。我知道维护更改日志及其压缩和其他事情,但从未理解为什么它被称为事件溯源。
【问题讨论】:
标签: apache-kafka event-sourcing apache-kafka-streams
我在https://martinfowler.com/eaaDev/EventSourcing.html 中读到了它。我知道维护更改日志及其压缩和其他事情,但从未理解为什么它被称为事件溯源。
【问题讨论】:
标签: apache-kafka event-sourcing apache-kafka-streams
因为事件日志是真相的来源。换句话说,应用程序的状态来源于事件。
【讨论】:
正如所选答案所说,事件溯源是一种持久性机制,其中不存储应用程序状态,而是从事件的历史中推断出来。
换句话说,唯一的真实来源是事件日志。应用程序中的每个突变都作为一个事件按顺序存储在事件存储的流中。
顺便说一句,您已使用 Kafka 标记了该问题,但 Kafka 并非旨在用于事件溯源,而是用于发布消费者消息通信。尽管理论上您可以在 kafka 中永久保存事件并订阅流以重放它们并投影它们以推断应用程序的状态,但还有更适合的产品,例如 EventStoreDb 在编写时具有并发控制。
PS:对于讲西班牙语的人,我有一个关于事件采购的介绍视频here。对于说英语的人,我推荐Event Store blog
【讨论】: