根据我的阅读,CQRS 设计涉及异步命令,其中命令被放入队列中。用户假设一切正常,UI 轮询或通过计时器得到一些反馈,如果一切正常或不正常。
如果我有一个在树中拖动文件夹的 UI,这将如何工作?我可以让一个用户删除一个文件夹,而另一个用户将一个文件夹拖到它上面(使其成为它的子文件夹)。
所以从 UI 我可以显示拖动已经发生,然后从某个计时器检查我的读取模型是否已更新(即检查拖动文件夹的父文件夹,如果它设置正确,我知道它已经工作)。
如果用户进行了多次拖动操作,我将不得不在 UI 中保留这些操作的列表并检查读取存储(从列表中删除任何成功的命令)。
也许有更好的方法来做到这一点。
在 UI 上似乎有很多工作并且更容易出错,而如果我只是运行同步命令并且一切正常,那么我将继续进行下一个操作。