gpt4 book ai didi

design-patterns - 事件溯源定义

转载 作者:行者123 更新时间:2023-12-02 07:29:21 26 4
gpt4 key购买 nike

对于实现“命令处理程序模式”的应用程序来说,“事件源”是否是一个奇特的名称,该模式保存每个成功执行的命令(SeatReservedOrderCanceled BlaBlaBlaDone),只对​​数据库进行插入(不更新也不删除,例如:Balance +100Account Closed),所有选择都类似于 从 UserAddressTable 中选择前 1 个 MailAddress,其中 UserID=@value 按 lastUpdated desc 排序从 UserTransactions 中选择 sum(balance),其中 UserId=@value???

最佳答案

您提出的命令 端定义基本上是正确的。

但是,没有人说您必须将事件存储在关系数据库中。事实上,这通常是一个糟糕的选择。在处理一个简单的银行账户示例时,您可能事先知道您将需要一个余额,这意味着您可以在数据库表中维护最新的余额。

但是,在从普通银行账户示例中移除的系统中,您可能无法提前准确了解所有事件将如何解释。

这就是事件溯源的值(value)所在。您永远不会丢弃数据,因此,如果将来您意识到自己想要执行一种您从未预料到的分析类型,您就可以,因为您从未删除过任何数据。

当您解释事件流时,您通常会执行 fold这些事件,产生一个聚合结果。有时,出于效率原因,您会提前执行此操作,然后通常将其称为快照

与事件溯源密切相关的是 CQRS 的概念.

关于design-patterns - 事件溯源定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23790773/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com