工程開發
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日 下午03:37
在 GitHub 查看