【发布时间】:2016-04-27 10:02:38
【问题描述】:
在我使用 DDD 开发的事件源应用程序中,有一些储蓄账户应该每天累积利息。每年年末累计利息应予以资本化。我的问题是:每天的计算真的应该被视为领域事件吗?
另一种方法是在读取端通过遍历账户上截至当天发生的交易(取款、存款等)来计算在给定时间点的累积利息,并将每天的累计利息相加。
鉴于系统中可能有数十万个储蓄账户每天计算其累积利息,事件存储中的事件数量将迅速增长到数百万。但与此同时,必须在读取端“即时”计算累积的兴趣,而不是每天引发事件,这似乎是一个缺点。
【问题讨论】:
-
我不是银行专家,但 InterestCredited 看起来像是您真正想要存储的事件,因为它会改变系统的状态。如果我理解正确的话,累积的兴趣是一个虚拟的概念——将其建模为自己的事件不会增加任何价值。每天重新计算一个简单的读取端值似乎非常符合需求。
-
感谢您的意见。我和我的同事谈过,他们也有类似的看法。将其视为一个虚拟概念确实帮助我理解了这个问题。我将创建一个应用程序服务,它可以计算给定时间点的累积兴趣。
-
我将此添加为答案。也许稍等片刻,等待其他答案出现 - 再说一次,我不是银行业专家,拥有该领域专家的 PoV 会很有趣。
标签: domain-driven-design cqrs event-sourcing