Leo*_*rdo 2 design-patterns event-sourcing
是“事件-采购”的申请很奇特的名字,它实现“命令处理程序模式”,节省了成功执行每个命令(SeatReserved,OrderCanceled,BlaBlaBlaDone),只做插入(没有更新,没有删除,如:Balance +100,Account Closed)数据库和所有选择上类似于select top 1 MailAddress from UserAddressTable where UserID=@value order by lastUpdated desc或select sum(balance) from UserTransactions where UserId=@value???
您对Command- side 提出的定义基本上是正确的。
但是,没有人说您必须将事件存储在关系数据库中。实际上,这通常是一个糟糕的选择。当使用一个简单的银行帐户示例时,您可能会事先知道您将需要余额,这意味着您可以在数据库表中维护最新余额。
但是,在从普通银行帐户示例中删除的系统中,您可能无法预先确切地知道将如何解释所有事件。
这就是为什么事件采购很有价值。您永远不会丢弃数据,因此,如果将来您意识到自己想要执行一种从未预测过的分析类型,则可以,因为您从未删除任何数据。
当您解释事件流,你经常进行折叠这些事件,产生一个集合结果。有时,出于效率原因,您需要提前进行此操作,然后通常将其称为快照。
CQRS与事件源密切相关。
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |