多年来,开发人员实现持久性使用传统的创建、读取、更新、删除(CRUD)模式。正如前面介绍的,如果采购模型实现持久性存储状态更改为历史事件捕获业务活动发生之前写的数据存储。这将事件存储机制,允许他们被聚合,或者放在一个组与逻辑边界。事件采购的模式之一,使并发、分布式系统实现高性能、可伸缩性和弹性。
在一个分布式体系结构中,事件采购提供了以下优点
>在传统的CRUD模型中,实体实例通常会表示为一个可变对象在内存和一个可变行关系数据库表中。这导致了臭名昭著的对象关系阻抗失配。对象关系映射器是用来填补这一鸿沟,但带来新的复杂性。
事件源ES模型对待数据库就像对待一个序列化时间的append-only log一样。它并不试图对每个实体的状态或直接在数据库模式之间的关系进行建模。这大大简化了代码从数据库中写入和读取
>一个实体如何达到其当前状态的历史仍在存储事件。事务型数据和查账式数据之间的一致性是有保证的,因为这些是相同的数据
>你现在有能力分析事件流和重要的业务信息来自它——也许甚至都不考虑当时的事件设计。你可以在我们的系统活动中添加新的视图而不会使写入方面更加复杂
>由于所有类型的事件都都只需添加到数据存储区,所以它可以提高写入性能。这里没有更新和删除
>事件源系统很容易测试和调试。命令和事件可以模拟用于测试目的。事件日志提供了一个良好的记录进行调试。如果在生产中检测到一个问题,你可以回放事件日志在受控环境中了解一个实体进入不好
的状态。