CQRS在哪里存储其他BC使用的统计信息

时间:2017-10-05 10:40:18

标签: architecture domain-driven-design cqrs

在我们当前的应用程序中,用户需要能够在其帐户中查看某些统计信息。这些数据来自事件形式的不同有界上下文。它们通常由计数器组成,例如跟踪的总距离。一些用户绑定的统计信息也用于报告和图表。我的问题是存储用户绑定统计信息的位置。比如,它们是域模型(用户聚合)的一部分吗?或者它们只是最终在多个地方更新的物化视图?

所以要使用物化视图进行可视化:

                                        /-> [User View updater]
[BC1] --> SomeInterestingToCountEvent1 <
                                        \-> [Report View updater]

                                        /-> [User View updater]
[BC2] --> SomeInterestingToCountEvent2 <
                                        \-> [Report View updater]

或者通过f.e.用户中的Stats值对象:

[BC1] --> SomeInterestingToCountEvent1 ---> [User Saga: update Stats]
[BC2] --> SomeInterestingToCountEvent2 ---> [User Saga: update Stats]

                                        /-> [User View updater]
[User BC] --> UserStatsUpdatedEvent    <
                                        \-> [Report View updater]

2 个答案:

答案 0 :(得分:2)

  

在我们当前的应用程序中,用户需要能够在其帐户中查看某些统计信息。这些数据来自事件形式的不同有界上下文。

所以你可能想要考虑复合UI

  

我的问题是存储用户绑定统计信息的位置。比如,它们是域模型(用户聚合)的一部分吗?或者它们只是最终在多个地方更新的物化视图?

您可能希望将它们视为一个或多个物化视图。

答案 1 :(得分:1)

由附加到任何相关事件的侦听器生成和更新的物化视图。