第22章 事件溯源

本文探讨了事件溯源在CQRS中的应用,分析了存储状态为事件流的优势,如时态查询和投影,同时指出其面临的挑战,如快照管理和并发控制。通过实例说明了如何构建事件存储,强调事件的领域表述性,并提醒要考虑额外的存储需求和学习成本。
摘要由CSDN通过智能技术生成

第22章 事件溯源

        

         领域驱动设计DDD实践者通常喜欢使用CQRS来合并事件溯源作为增强扩展性和性能的基础。

 

  1. 将状态存储为快照的限制

如今大部分系统都只是存储了领域模型的当前状态,也就是状态存储为快照,因此不能分析历史行为,无法理解系统是如何变成该状态的,而事件溯源是存储了完整的历史changes数据。

 

  1. 通过将状态存储为事件流来获得竞争优势

 

    1. 时态查询

时态查询,可以追溯用户发生变化的任何时点的状态,且事件流的数据,可以用于帮助市场部门制定市场营销和产品开发决策或者指导试验。

 

    1. 投影

投影是让你能够从多个流中合并事件以便执行这些类型的复杂时态查询的潜在特性。

类似SQL数据库中的连接查询,在事件存储中,把这个概念称为投影,这就是将一系列输入事件流映射到一个或多个新的输出流上的查询。

如下例子:
回答“在某体育赛事期间某特定人群在某一天中一共进行了多少分钟的通话?”

将所有需要的事件放在单个流中,就能轻易高效地对所有事件进行查询以便找出需要被提取信息的合计值,平均值或者信息的其他部分等。

 

    1. 快照

将状态作为事件存储的一个后果就是,事件流会增长的非常大,这意味着重现事件所需要的时间会持续增长。为了避免这一性能影响,事件存储要使用快照。

快照是一个事件流中代表重现所有之前事件后的状态的中间阶段。

 

  1. 源自事件的聚合

为了得到事件溯源的兼容性,聚合需要面向事件。

DDD实践者发现,使用事件溯源机制下,其聚合更为面向行为,所以事件需要有较高水平的领域事件表述性。

        

    1. 构造

在为源自事件的领域模型创建聚合时涉及一些关键细节。

1

添加事件溯源能力

2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值