在我使用 DDD 开发的事件源应用程序中,有一些储蓄账户应该每天累积利息。每年末将累计利息资本化。我的问题是:是否真的应该将每天的每一次计算都视为领域事件?
另一种方法是通过遍历截至当天在账户上发生的交易(取款、存款等),在读取端计算给定时间点的累计利息,并对每一天的累计利息求和。
假设系统中可能有数十万个储蓄账户每天计算其累积利息,事件存储中的事件数量将迅速增长到数百万。但与此同时,必须在读取端“即时”计算累积利息而不是每天引发事件似乎是一个缺点。
最佳答案
我不是银行业专家,但 InterestCredited
看起来像是您真正想要存储的事件,因为它会改变系统的状态。
累积兴趣 是一个虚拟概念 - 将其建模为事件本身不会增加任何值(value)。无论是否存在每日 InterestAccumulated
事件,您都可以在年末计算资本化利息。相反,每天重新计算的简单读取端值似乎非常符合需求。
关于domain-driven-design - 如何在事件源储蓄账户应用程序中正确模拟利息累积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36886565/