工程开发
core-dev avatar

core-dev

lemline-core 开发指南。适用于无状态 Serverless Workflow 引擎,涵盖工作流执行、节点导航、状态转换、JQ 表达式评估、错误处理及并行分支逻辑。

简介

core-dev 技能为开发与扩展 lemline-core 模块提供了完整的指导,这是 Lemline 核心中纯功能性、无状态的工作流执行引擎。专为从事业务流程自动化的开发人员而设计,此技能涵盖了 Serverless Workflow DSL v1.0 的实现,使用户能够以高可靠性和高效率编排复杂的任务树。它适合构建分布式系统的软件工程师,他们需要管理状态转换、并行分支执行和复杂的错误恢复模式,而无需处理粘性会话(sticky sessions)或共享内存架构的额外负担。

  • 进阶工作流编排:深度整合 StepByStepOrchestrator 与 FullOrchestrator,用于管理工作流生命周期、执行流程控制与同步单元测试。

  • 节点树导航:管理不可变的 Node 结构与动态的 NodePosition 定址,以实现精确的任务执行追踪。

  • 状态生命周期管理:使用严格遵循无状态原则与高效序列化的方式处理 TaskState、WorkflowCommands 与 WorkflowEvents。

  • 逻辑与表达式处理:实现 JQ 表达式评估、范围变量管理与动态数据处理的转换辅助工具。

  • 弹性错误处理:利用 AsyncTaskException 进行异常驱动的控制流,包含重试(retry)、捕捉(catch)与 try/catch 处理器策略。

  • 并行与分支逻辑:通过 ForkProcessors、错误边界(error boundaries)与分支同步,稳健地管理并行分支。

  • 务必保持处理器(processor)逻辑的无状态性,通过接收状态并返回更新后的 NextStepInfo,以防止内存泄漏与状态损坏。

  • 使用异常驱动的控制流(AsyncTaskException)来触发等待、分叉或执行工作流,而非依赖标准运行时异常。

  • 确保所有自定义的 TaskState 子类皆标记为 @Serializable,以促进无状态工作者模式与水平扩展能力。

  • 在单元测试工作流逻辑时使用 FullOrchestrator,在生产环境中使用 StepByStepOrchestrator。

  • 使用延迟初始化(by lazy)来构建节点树,以优化复杂工作流执行期间的性能与内存占用。

仓库统计

Star 数
37
Fork 数
0
Open Issue 数
6
主要语言
Kotlin
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 15:37
在 GitHub 查看