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