How sgs98/warm-flow works
Warm-Flow is a lightweight workflow engine with a bundled design/chart UI and a runnable demo. Its main user journey is to define and publish a process, start an instance, then act on assigned tasks while the engine evaluates routes and records workflow state. The graph also preserves documented approval, expression, listener, and persistence capabilities. Core interfaces, selected implementations, and demo/UI entry points are represented; unsampled wiring is limited to the documented service boundaries and is not expanded into speculative call chains.
Main entry points: WorkflowServiceImpl.java Workflow orchestration · DefServiceImpl.java Definition service · WarmFlowService.java Designer service · FlowTaskDaoImpl.java MyBatis-Plus adapter
Components 21
Demo application
- Demo web client
warm-flow-demo/warm-flow-demo-web/src/views/tasks/TodoList.vue - Demo controllers
warm-flow-demo/warm-flow-demo/src/main/java/org/dromara/warm/demo/controller/TaskController.java - Demo workflow service
warm-flow-demo/warm-flow-demo/src/main/java/org/dromara/warm/demo/service/impl/WorkflowServiceImpl.java - Definition management
warm-flow-demo/warm-flow-demo/src/main/java/org/dromara/warm/demo/service/impl/DefinitionServiceImpl.java
Design and charts
- Designer and chart UI
warm-flow-ui/src/App.vue - Designer service
warm-flow-plugin/warm-flow-plugin-ui/warm-flow-plugin-ui-core/src/main/java/org/dromara/warm/flow/ui/service/WarmFlowService.java - Handler selection SPI
warm-flow-plugin/warm-flow-plugin-ui/warm-flow-plugin-ui-core/src/main/java/org/dromara/warm/flow/ui/service/HandlerSelectService.java
Workflow engine
- Workflow facade
warm-flow-core/src/main/java/org/dromara/warm/flow/core/workflow/WorkflowService.java - Workflow orchestration
warm-flow-core/src/main/java/org/dromara/warm/flow/core/workflow/WorkflowServiceImpl.java - Operation pipeline
warm-flow-core/src/main/java/org/dromara/warm/flow/core/service/impl/FlowPipeline.java - Path and conditions
warm-flow-core/src/main/java/org/dromara/warm/flow/core/service/impl/FlowPathResolver.java - Expression strategies
warm-flow-core/src/main/java/org/dromara/warm/flow/core/strategy/ExpressionStrategy.java - Workflow listeners
warm-flow-core/src/main/java/org/dromara/warm/flow/core/listener/Listener.java
Process and tasks
- Definition service
warm-flow-core/src/main/java/org/dromara/warm/flow/core/service/impl/DefServiceImpl.java - Task service
warm-flow-core/src/main/java/org/dromara/warm/flow/core/service/impl/TaskServiceImpl.java - Instance service
warm-flow-core/src/main/java/org/dromara/warm/flow/core/service/impl/InsServiceImpl.java - Chart service
warm-flow-core/src/main/java/org/dromara/warm/flow/core/service/impl/ChartServiceImpl.java
Persistence adapters
- MyBatis-Plus adapter
warm-flow-orm/warm-flow-mybatis-plus/warm-flow-mybatis-plus-core/src/main/java/org/dromara/warm/flow/orm/dao/FlowTaskDaoImpl.java - MyBatis adapter
warm-flow-orm/warm-flow-mybatis/warm-flow-mybatis-core/src/main/java/org/dromara/warm/flow/orm/dao/FlowTaskDaoImpl.java - Workflow database
Other components
- Workflow user
Connections 23
- Workflow user → Demo web client: uses
- Demo web client → Demo controllers: calls API
- Demo controllers → Demo workflow service: delegates
- Demo workflow service → Workflow facade: issues commands
- Workflow facade → Workflow orchestration: dispatches
- Workflow orchestration → Operation pipeline: runs steps
- Workflow orchestration → Definition service: loads definitions
- Workflow orchestration → Task service: updates tasks
- Workflow orchestration → Instance service: updates instances
- Workflow orchestration → Path and conditions: resolves paths
- Path and conditions → Expression strategies: evaluates conditions
- Workflow orchestration → Workflow listeners: notifies
- Definition management → Definition service: manages definitions
- Designer and chart UI → Designer service: calls designer API
- Designer service → Definition service: loads and saves
- Designer service → Chart service: gets chart data
- Designer service → Handler selection SPI: queries handlers
- Chart service → Definition service: reads process data
- Definition service → MyBatis-Plus adapter: persists
- Task service → MyBatis-Plus adapter: persists
- Instance service → MyBatis-Plus adapter: persists
- MyBatis-Plus adapter → Workflow database: reads and writes
- MyBatis adapter → Workflow database: reads and writes