dijiekstra commented on issue #18625:
URL: 
https://github.com/apache/dolphinscheduler/issues/18625#issuecomment-5615132106

   ## 🔧 MVP工作清单 (Phase 1)
   
   如果社区批准本RFC,建议按以下工作项启动Phase 1开发:
   
   ### 数据库表设计与迁移
   - [ ] 编写6张表的DDL(已在文档第3.4节)
   - [ ] 创建SQL migration脚本(兼容MySQL 5.7+、PostgreSQL 10+)
   - [ ] 编写表设计文档(字段注释、索引说明)
   
   ### Core Service实现
   - [ ] 实现DependencyResolverService
     - resolveDependency(workflowCode, taskCode, dependencyGroup) -> 
DependencyStatus
     - 支持snapshot存在性判定(Phase 1简化版)
     - 单元测试:幂等性、乱序处理、版本比较
     
   - [ ] 实现AssetEventService和AssetStateService
     - 乐观锁更新AssetState(只允许推进、不允许回退)
     - 幂等事件去重写入
     
   - [ ] 实现DependencyResolverService
     - 反向索引:assetKey -> dependencyGroup映射
     - 三层依赖判定逻辑
   
   ### 任务插件开发
   - [ ] 创建dolphinscheduler-task-asset-sensor模块
     - AssetSensorParameters(继承AbstractParameters)
     - AssetSensorLogicTask(继承AbstractLogicTask)
     - AssetSensorTracker(实现TaskTracker)
     - 状态转移:SUBMITTED → WAITING_DEPENDENCY → READY
     - 轮询DependencyResolver判定是否READY
     - 可选:注册AssetStateChangeListener做事件驱动(降低延迟)
   
   ### 事件源实现
   - [ ] 实现AssetEventScanner
     - 定时轮询Paimon表的$snapshots
     - 写入t_ds_asset_event(去重自动处理)
     - 触发DependencyResolver重新评估
     - 支持断点续扫(t_ds_asset_event_consumer_offset)
   
   ### Master集成改造
   - [ ] 在TaskProcessor#submitTask()加入ASSET_SENSOR检查
     - 如果是ASSET_SENSOR任务,先调用DependencyResolver
     - 依赖不满足则不提交Worker,保持WAITING_DEPENDENCY
     
   - [ ] 注册ASSET_SENSOR任务类型
     - 在dolphinscheduler-master的task plugin注册表中
     
   - [ ] 可选:新增CommandType.ASSET_EVENT_TRIGGER
     - 或复用START_PROCESS + commandParam中标记
   
   ### 配置与启用
   - [ ] 添加application.yaml配置项
     ```yaml
     dolphinscheduler:
       asset-event-scheduling:
         enabled: true
         dependency-resolver:
           cache-expire-seconds: 60
         event-source:
           paimon-polling:
             enabled: true
             interval-seconds: 30
     ```
   
   ### 单元测试与集成测试
   - [ ] 单元测试
     - 同一trigger_key只插入一次(幂等性)
     - 乱序事件被忽略(版本比较)
     - AssetState只允许推进不允许回退
     - 多资产AND依赖的组合判定
     
   - [ ] 集成测试
     - 端到端:Paimon snapshot推进 → AssetEvent生成 → AssetState更新 → DependencyResolver 
READY → ASSET_SENSOR任务释放 → DAG继续执行
     - 多Master并发场景的幂等性验证
     - 补偿扫描的缺失事件补写
   
   ### 文档与示例
   - [ ] 用户使用指南
     - 如何声明ASSET_SENSOR任务
     - 如何编写依赖表达式
     - 常见问题排查
     
   - [ ] 示例工作流
     - GMV场景的完整DAG定义
     - 配置示例
     - 观察日志和指标的方法
   
   ### 工作量预估
   
   - 数据库设计:0.5周
   - Core Service实现:1周
   - 任务插件开发:0.5周
   - 事件源实现:0.5周
   - Master集成:0.5周
   - 测试与文档:1周
   - **总计**:4~5周(小型团队)
   
   ---
   
   建议优先级:**数据库 > Core Service > 任务插件 > 事件源 > Master集成**(按这个顺序并行开发)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to