lua eventsourcing 源码
《魔兽世界》的事件采购 WoW插件通常需要在多个客户端之间保持某种状态。 一个典型的例子是DKP或行会战利品历史。 保持复杂状态的挑战通常是同步和合并。 该库通过使用事件源解决了同步问题。 我们存储带有时间戳(4字节),创建者ID(4字节),计数器(1字节)的简单事件。 使用自定义功能对事件进行绝对排序 通过按顺序执行每个事件的处理程序来确定性地得出状态 从现在起,称为分类帐的事件日志仅是插入操作,无法从中删除任何事件 拥有仅插入数据存储区可以使我们简化同步。 在将任何事件添加到本地存储或通过任何广播通道发送出去之前,我们使用授权处理程序来允许图书馆使用者决定其信任模型。 UI冻结 发送大数据集的一个常见问题是,在对数据进行序列化或未序列化时,UI会冻结。 该库将同步较小的数据集,以防止冻结。 播放事件(即计算状态)是在循环计时器上分批完成的。 这给了我们2个旋钮(批处理大小,间隔)
用户评论