domain-driven-design - 如何在事件源储蓄账户应用程序中正确模拟利息累积?

标签 domain-driven-design cqrs event-sourcing

在我使用 DDD 开发的事件源应用程序中,有一些储蓄账户应该每天累积利息。每年末将累计利息资本化。我的问题是:是否真的应该将每天的每一次计算都视为领域事件?

另一种方法是通过遍历截至当天在账户上发生的交易(取款、存款等),在读取端计算给定时间点的累计利息,并对每一天的累计利息求和。

假设系统中可能有数十万个储蓄账户每天计算其累积利息,事件存储中的事件数量将迅速增长到数百万。但与此同时,必须在读取端“即时”计算累积利息而不是每天引发事件似乎是一个缺点。

最佳答案

我不是银行业专家,但 InterestCredited 看起来像是您真正想要存储的事件,因为它会改变系统的状态。

如果我理解正确,

累积兴趣 是一个虚拟概念 - 将其建模为事件本身不会增加任何值(value)。无论是否存在每日 InterestAccumulated 事件,您都可以在年末计算资本化利息。相反,每天重新计算的简单读取端值似乎非常符合需求。

关于domain-driven-design - 如何在事件源储蓄账户应用程序中正确模拟利息累积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36886565/

相关文章:

domain-driven-design - 可以聚合根实体调用 Repository

asp.net-core - FluentValidation 装饰器不适用于 autofac 和 mediator

cqrs - 在 CQRS 中维护聚合根引用。 Sagas 与命令处理程序

events - kafka 上的无限期日志保留

c# - DDD 封装泄漏问题

domain-driven-design - DDD 存储库可以是有状态的吗?

domain-driven-design - DDD。我应该修改存储库中的实体吗?

c# - CQRS 的事件总线

cqrs - @AggregateIdentifier & @TargetAggregateIdentifier 的理解

c# - CQRS 写入端 DDD 中的时间序列/时间数据