5 c# design-patterns cqrs event-sourcing
我将CQRS用于正在构建的应用程序(具有复杂业务逻辑的在线讨论系统),并且在实现过程中遇到了让我感到担忧的部分。
我应该如何处理综合浏览量?如果用户查看了一个线程,我想对其进行跟踪。因为我想跟踪它,所以接下来我应该创建一个命令和一个事件,并将其绑定到负责我正在查看的对象(例如分别为UserViewsThread和UserViewedThread)的聚合根中。但这似乎效率很低-除此之外,在讨论系统的许多用例(查看论坛/主题)中没有理由扎根。现在,我将对此进行介绍,我将在页面的每个视图上进行额外的命令分派和事件发布,依次负责“缓冲”线程聚合,序列化事件并将其发送到事件发布者。
必须有一个更好的方法来做到这一点。我当时正在考虑这样做,以便我的控制器对象能够调度事件-但是通过绕过我的聚合,我无法再将行为附加到网页浏览了。
另一种可能性是使用此方法验证用户身份的想法。将允许UserViewsThread和UserViewsForum命令引发身份验证异常,以使我的控制器知道用户无法执行此操作。但是,如果将这些事件转换成事件并存储在我的事件存储中,那么我们正在谈论的是在每个页面视图上创建的多个事件-这很可能会破坏性能(每个页面视图都会导致数据库事务...嗯)和资源管理。
你家伙的想法是什么?