外部系统双向同步
External System Bidirectional Sync
与外部 issue tracker 的双向数据同步,包括冲突检测与解决策略
子问题
1.Pull-Detect-Resolve-Push 四阶段同步
2.字段映射与类型转换
3.冲突检测与解决策略
4.增量同步与全量同步
5.Hook 机制定制同步行为的粒度控制
6.工作流状态预缓存避免 N+1 API 调用
7.依赖关系的延迟创建(所有 issue 导入后再建立关联)
各项目的解法1 solutions
Signals
横向对比
| 维度 | Beads |
|---|---|
| 同步模式 | Pull-Detect-Resolve-Push 四阶段批量同步,默认双向 |
| 冲突检测 | last_sync 时间戳基准 + 双端 UpdatedAt 比较 |
| 冲突解决 | 三策略可选:timestamp(新者胜)/ local / external |
| 适配器架构 | IssueTracker + FieldMapper 双接口 + init() 自注册 Registry |
| 字段映射 | MappingConfig 可配置映射表,支持从存储层动态加载覆盖默认值 |
| Hook 定制 | PullHooks(3 钩子)+ PushHooks(5 钩子)注入变化点 |
| 去重策略 | ContentEqual Hook 支持 content-hash 比较跳过无变化推送 |
| 可观测性 | OTel span 覆盖每个同步阶段,记录统计数据和错误 |
最佳实践
1.Plugin 接口 + Registry 工厂模式
2.Hook 机制定制同步行为
3.Content-hash 去重避免无效 API 调用
4.Pull 阶段冲突感知保护:跳过 last_sync 后本地修改的 issue,留给冲突检测处理
5.FormatDescription Hook 操作副本不修改本地数据,保证本地数据完整性
6.MappingConfig 从存储层动态加载覆盖默认映射,支持运行时自定义