主要变更: - 新增PubSubConnectionFactory连接工厂,提供Pub/Sub API连接管理 - 新增PubSubEventSubscriberImpl实现,支持Pub/Sub API事件订阅 - 更新EventProcessorImpl,添加事件批次处理能力 - 更新RealtimeSyncService,使用Pub/Sub API替代CDC实现 - 更新Authentication.canvas架构文档,添加Pub/Sub组件 - 优化同步配置管理和实时同步日志功能 技术改进: - 提升实时同步性能和可靠性 - 支持批量事件处理,提高吞吐量 - 完善连接工厂模式,统一管理连接生命周期
7.8 KiB
7.8 KiB
Requirements 模板
需求信息
- 需求名称: Salesforce数据及时同步至本地数据库
- 需求类型: 功能需求
- 需求编号: REQ-001
- 创建日期: 2026-01-09
- 需求版本: v1.4.0
- 需求提出人: 系统管理员
- 需求状态: 待审核
输入引用
引用相关的 docs 文档链接:
- 0000-template.md - 需求文档模板
- 架构决策 - Salesforce Pub/Sub API同步方案
- 设计文档 - Salesforce Pub/Sub API实时同步设计
Context Maps
强制列出本次需求依赖的 Canvas 文件:
- Authentication.canvas - 项目架构视觉化展示
- 相关节点: 集成任务 - 处理Salesforce的定时同步任务
- 相关节点: SessionManager - 会话管理,提供登录服务
- 相关节点: Salesforce连接类型 - 提供与Salesforce的各种连接方式
需求目标
明确描述此需求的目标和预期效果,包括要解决的问题、实现的功能或达成的结果。
本需求的目标是通过Salesforce Pub/Sub API 同步方案,实现Salesforce数据的实时同步至本地数据库,确保本地系统能够实时获取Salesforce中的最新数据,支持业务系统的高效运行和数据分析。通过建立可靠的同步机制,解决数据延迟和不一致的问题,提高系统的整体性能和用户体验。
需求描述
概述
简要描述需求的整体内容和范围。
本需求旨在实现Salesforce数据的实时同步功能,采用Salesforce Pub/Sub API 同步方案,包括配置同步策略、执行同步操作、监控同步状态、处理同步异常等功能。同步范围包括Salesforce中的标准对象和自定义对象,仅支持基于Pub/Sub API的实时同步模式,并提供同步历史记录和统计分析功能。
详细需求
1. 同步配置管理
- 需求描述: 提供同步配置管理功能,支持配置同步对象、字段映射、同步频率、同步模式等参数。在对象表中增加is_realtime_sync字段(tinyint(1)类型)用于判断是否开启实时数据同步。在对象启用Pub/Sub API时,检查本地数据库中的batch表是否已经全量拉取存量数据,若没有则提示但仍可启用Pub/Sub API。
- 优先级: 高
- 验收标准:
- 能够成功配置同步对象和字段映射
- 能够设置同步频率和同步模式
- 对象表中成功添加is_realtime_sync字段(tinyint(1)类型)
- 配置变更后能够正确生效
- 启用Pub/Sub API时能够检查batch表并提示存量数据拉取状态
- 依赖关系: 依赖于配置模块和集成模块
- 实现建议: 基于现有的配置管理功能,扩展同步配置的支持,并在对象表中添加实时同步开关字段
2. 实时数据同步
- 需求描述: 实现Salesforce数据的实时同步功能,采用Salesforce Pub/Sub API 同步方案,仅支持基于Pub/Sub API的实时同步模式。事件处理采用异步执行方式,upsert操作参考DataiIntegrationBatchServiceImpl中的processQueryResult方法实现。利用Pub/Sub API的自动重连和消息重试机制,提高系统可靠性。暂不考虑额外的失败重试机制。
- 优先级: 高
- 验收标准:
- 能够成功使用Pub/Sub API订阅Salesforce事件总线并捕获变更
- 能够成功处理和同步捕获的变更数据
- 同步数据与Salesforce中的数据一致
- 同步操作能够在规定时间内完成
- 事件处理采用异步执行方式
- upsert操作正确实现
- Pub/Sub API的自动重连机制正常工作
- 依赖关系: 依赖于集成模块和会话管理
- 实现建议: 基于现有的集成核心功能,集成Salesforce Pub/Sub API客户端库,实现数据同步逻辑,参考DataiIntegrationBatchServiceImpl中的processQueryResult方法实现upsert操作
3. 同步监控与日志
- 需求描述: 提供同步监控和日志功能,记录同步操作的执行状态、结果和异常信息。为实时数据同步创建专门的日志表,用于记录对象数据同步的详细信息。
- 优先级: 中
- 验收标准:
- 能够实时监控同步操作的执行状态
- 能够查看同步操作的详细日志
- 能够统计同步操作的执行情况
- 成功创建实时数据同步日志表
- 日志表能够记录对象数据同步的详细信息
- 已实现DataiIntegrationRealtimeSyncLog实体类
- 已实现DataiIntegrationRealtimeSyncLogController控制器
- 提供日志查询、导出和详情查看功能
- 依赖关系: 依赖于集成模块和日志系统
- 实现建议: 基于现有的日志功能,扩展同步监控的支持,并创建专门的实时数据同步日志表
4. 异常处理
- 需求描述: 实现同步异常的处理机制,确保同步操作的可靠性。暂不考虑失败重试。
- 优先级: 中
- 验收标准:
- 能够正确捕获和处理同步异常
- 能够提供异常信息的详细记录
- 依赖关系: 依赖于集成模块和异常处理机制
- 实现建议: 基于现有的异常处理功能,扩展同步异常的处理支持
约束
列出需求实现时的约束条件,例如:
- 技术栈限制:基于现有的Spring Boot3+Vue3技术栈
- 性能要求:同步操作不能影响系统的正常运行
- 安全性要求:确保同步过程中的数据安全
- 兼容性要求:支持不同版本的Salesforce API
- 时间限制:需要在规定的时间内完成实现
- 其他约束:需要遵守Salesforce的API使用限制
Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
具体规则:
- 必须使用 Canvas 中定义的类名和方法名
- 必须遵循 Canvas 中定义的调用关系
- 必须参考 Canvas 中的流程图逻辑
验收标准
定义验证需求是否满足的具体标准,例如:
- 功能完整性:所有同步功能能够正常工作
- 性能指标:同步操作的执行时间在可接受范围内
- 安全性要求:同步过程中的数据传输和存储安全
- 用户体验:同步操作的操作界面友好易用
- 其他验收标准:同步数据的准确性和一致性
风险
识别需求可能带来的风险,例如:
- 技术实现风险:Salesforce API的变更可能影响同步功能
- 时间风险:实现复杂度可能导致项目延期
- 成本风险:可能需要额外的资源投入
- 质量风险:同步数据的准确性可能受到影响
- 其他潜在风险:网络连接不稳定可能影响同步可靠性
需求变更记录
| 日期 | 变更内容 | 变更原因 | 变更人 | 审核人 | 状态 |
|---|---|---|---|---|---|
| 2026-01-09 | 更新需求文档,明确is_realtime_sync字段类型、batch表检查逻辑、upsert实现方式和事件处理方式 | 需求细节确认 | 系统管理员 | - | 待审核 |
| 2026-01-09 | 更新需求文档,移除全量和增量同步,只保留CDC同步 | 需求范围调整 | 系统管理员 | - | 待审核 |
| 2026-01-09 | 更新需求文档,添加Salesforce CDC相关内容 | 架构决策变更 | 系统管理员 | - | 待审核 |
| 2026-01-09 | 创建需求文档 | 初始需求 | 系统管理员 | - | 待审核 |
相关人员
- 需求提出人: 系统管理员 - 联系方式
- 需求负责人: 系统管理员 - 联系方式
- 技术负责人: 开发工程师 - 联系方式
- 测试负责人: 测试工程师 - 联系方式
- 其他相关人员: 运维工程师 - 联系方式
评审信息
- 评审日期: -
- 评审人员: -
- 评审结果: -
- 评审意见: -
- 修改建议: -