我们应用程序中基于 CRUD 的部分需要:
事件溯源(或“命令模式”)是我正在考虑完成这些项目的方法。我觉得用这个解决 2 和 3 很舒服,但不清楚第一项,同步。
如果每个命令都使用时间戳(如果需要),是否需要将离线命令应用到主系统,因为它们本来是实时的(合并),或者我可以认为它们在任何结束时发生命令(具有更新的时间戳)?
基于命令的同步的任何基本算法描述都会有所帮助。
最佳答案
您会想回顾一下 Greg Young 对 CQRS and Occasionally Connected Systems 的看法
命令需要在接收时在记录系统上运行。因此,您的离线客户端可以使用其本地缓存的、陈旧的、记录副本和排队命令。当再次连接时,客户端更新其记录系统的副本,将其排队的命令与世界的新状态进行协调,然后将新命令发送到记录系统。
Greg 的演讲概述了命令协调的工作原理(基本上,通过查看临时命令生成的事件,并查找与记录系统记录的事件的冲突)。该演讲强烈暗示领域专家将希望以特定方式解决事件冲突。
关于synchronization - 离线同步和事件溯源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350780/