我最近一直在研究架构,并遇到了事件源、事件流和历史建模这几个术语,它们都提到了“仅附加”模型,但到目前为止,我所读到的所有概念对我来说都有点抽象,无法完全理解每一种模型的利弊。
我读过Greg Young、Martin Fowler和其他一些人关于高度并发系统和这些仅附加模型的CQRS的文章,但到目前为止,我还没有看到一个相当复杂的系统的具体实现,它将受益于事件源,特别是一致性是一流要求的系统,比如支付系统。
所以,问题是,什么样的问题可以从一个只附加的模型中受益?有谁能举出一个真实世界的例子吗?
发布于 2016-12-01 13:28:01
典型的(也可能是最容易理解的)附加问题是日志记录或监视系统。
如果有数以百计或数千个传感器将数据注入您的系统,您通常不会更新现有的值-您只是附加。这在何时以及如何锁定数据库行、如何分发数据等方面为您节省了很多麻烦。
因此,您将得到相当长的事件流,您可以使用它来在这些数据集上创建不同的视图。一个系统可能想要可视化错误率(日志中有多少个错误),一个系统可能想要可视化请求率或最频繁的请求,或者一个完全不同的,可能还不知道的方面。
这就引出了第二个用法:当你得到你的事件流时,你总是可以根据事件重建任何特定的时间点。
支付事务系统也会(以某种方式)进行事件来源,它们正在建模所有导致帐户当前状态的事务。如果你只有你通常的帐户表,余额是20欧元,那就说明不了多少了。如果您有一个事务日志(=event),它告诉您+10欧元,-20欧元,+30欧元,那么您总是可以在任何时候重新创建状态。此外,您还可以回滚不必要的事务或事件。
https://softwareengineering.stackexchange.com/questions/337272
复制相似问题