为了支持离线客户端,我想评估如何将多版本并发控制与 CQRS-DDD 系统相匹配。
向 CouchDB 学习,我很想为每个实体提供一个版本字段。但是还有其他版本的并发算法,例如矢量时钟。这让我想,也许我不应该为每个实体和/或事件公开这个版本概念。
不幸的是,我看到的大多数实现都是基于软件运行在单个服务器上的假设,其中事件的时间戳来自一个可靠的来源。但是,如果某些事件是远程和离线生成的,则本地客户端时钟偏移存在问题。在这种情况下,正常的时间戳似乎不是订购我的事件的可靠来源。
这是否迫使我评估某种形式的不基于时间戳的MVCC解决方案?
离线 CQRS 客户端必须评估哪些实现细节才能将延迟的事件链与中央服务器同步?
有什么好的开源例子吗?
我的 DDD 实体和/或 CQRS 查询 DTO 是否应该提供版本参数?