当我阅读一些CQRS资源时,有一个经常出现的问题我不太明白。例如,假设客户端发出一个命令。该命令被领域接受,因此可以更新其领域模型(DM)。另一方面,该命令被持久化在事件存储中。这是最常见的情况。
1) 当我们说DM被更新后,我想数据应该被持久化在底层数据库中(如果有的话)。我是对的吗?否则,我们将处理一个内存瞬态模型,我想这不是一个好事情?(状态不应该在服务器端保留在客户端请求之外)。
2) 如果数据被持久化,我想依赖它的读模型会自动更新,因为每个请求它的客户端都会在应用程序中生成一个新的“状态/上下文”(在Web应用程序或RESTful架构的情况下)?
3) 如果命令被持久化,是否意味着我们正在处理事件溯源(当使用CQRS时构造)?事件溯源是否使数据库更新流程失效?(因为如果状态从事件存储重建,保持数据库似乎没有用处)?
CQRS只适用于多数据库系统(当数据在不同的数据库中传播时),如果处理内存瞬态模型,那是否能很好地适用于Web应用程序或RESTful服务?
1) 当我们说DM被更新后,我想数据应该被持久化在底层数据库中(如果有的话)。我是对的吗?否则,我们将处理一个内存瞬态模型,我想这不是一个好事情?(状态不应该在服务器端保留在客户端请求之外)。
2) 如果数据被持久化,我想依赖它的读模型会自动更新,因为每个请求它的客户端都会在应用程序中生成一个新的“状态/上下文”(在Web应用程序或RESTful架构的情况下)?
3) 如果命令被持久化,是否意味着我们正在处理事件溯源(当使用CQRS时构造)?事件溯源是否使数据库更新流程失效?(因为如果状态从事件存储重建,保持数据库似乎没有用处)?
CQRS只适用于多数据库系统(当数据在不同的数据库中传播时),如果处理内存瞬态模型,那是否能很好地适用于Web应用程序或RESTful服务?