Cqrs CQR中的新/读标志

Cqrs CQR中的新/读标志,cqrs,Cqrs,我目前正在起草一个(主要是)基于HTML的协作套件的概念,我计划使用CQR实现该套件。该软件将包含可发送给用户的消息(显然,可以读取或未读取)和其他元素,如果这些元素是在上次用户登录后创建的,则应标记为“新”。 这并不是什么新鲜事,但我不太确定如何使用CQR正确地实现它。据我所知,任何类型的更改都应该毫无例外地只能通过命令进行。但是为正在访问的每个(新)元素创建命令似乎有点太多,更不用说开销了。 我不知道是否需要它,但在元素上实现最后访问的时间戳的最佳方法是什么。与上述问题基本相同,不同之处在于

我目前正在起草一个(主要是)基于HTML的协作套件的概念,我计划使用CQR实现该套件。该软件将包含可发送给用户的消息(显然,可以读取或未读取)和其他元素,如果这些元素是在上次用户登录后创建的,则应标记为“新”。 这并不是什么新鲜事,但我不太确定如何使用CQR正确地实现它。据我所知,任何类型的更改都应该毫无例外地只能通过命令进行。但是为正在访问的每个(新)元素创建命令似乎有点太多,更不用说开销了。 我不知道是否需要它,但在元素上实现最后访问的时间戳的最佳方法是什么。与上述问题基本相同,不同之处在于每次访问元素时都会发生更改,而不仅仅是每个用户第一次

CQRS似乎是一个很棒的概念,但它确实需要更多的学习材料。迫不及待地要出版一本书:)

问候


[编辑]没有人?想不到这是一个如此复杂的问题。

我假设您正在使用事件源,在这种情况下,一旦允许查询服务/事件处理程序引发适当的事件,那么这将变得相当容易解决

为你的信息/元素;在处理元素的特定创建事件时添加到现有事件处理程序或创建其他事件处理程序,以将状态为new的消息和有关元素的适当信息存储到读取模型中

作为用户登录的一部分,我不明白为什么不能引发用户登录事件(从安全/查询服务,具体取决于您实现身份验证的方式)来表示用户已登录。事件处理程序可以捕获此信息,并将上次登录时间戳写入特定的用户上次登录读取模型

此外,登录事件处理程序的用户需要将所有消息(针对该用户)更新为未读状态。当用户登录时,我们正在更改消息的状态,您还需要存储上次登录的时间戳吗


对于上一次访问的时间戳,也许您可以在完成对不同元素的查询时将其应用到查询服务中。使用元素id/类型信息引发查询已完成事件。

对我提供的答案有何想法?