# smart-flow **Repository Path**: javafanscode/smart-flow ## Basic Information - **Project Name**: smart-flow - **Description**: smart-flow 是一个轻量、灵活的业务流程编排框架,支持业务流程中常见的条件分支控制、子流程、业务组件异步和降级等功能。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.yuque.com/yamikaze/smart-flow - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 143 - **Created**: 2024-12-18 - **Last Updated**: 2024-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 使用文档见 [官方文档](https://www.yuque.com/yamikaze/smart-flow) # 项目背景 业务系统在发展的过程中,业务的逻辑越来越复杂,简单的逻辑步骤拆分已经不能快速适应业务的变化,大部分时候都是在主流程上打补丁的方式进行业务支持。 而且大量的业务逻辑被隐藏在实现细节中,无法从全局看到整体的业务流程。所以在此背景下,需要一个业务编排框架帮助我们将代码逻辑以组件化的方式组织起来,达到快速配置和快速了解业务全貌的作用。 # 项目介绍 smart-flow 是一个轻量、灵活的业务流程编排框架,支持业务流程中常见的条件分支控制、子流程、业务组件异步和降级等功能。 # 名词简介 - Engine smart-flow管理流水线的对象,也是流程引擎进行调用的入口 - Pipeline 由组件构成的线性流水线,流程引擎执行会按照流水线的配置线性执行 - Component 业务逻辑的包装层,统一称为组件,smart-flow基于组件层提供各种能力,例如分支选择、降级、异步等 - Context 执行上下文,用于存放流程引擎执行过程的中间信息 - Condition 流程中用于分支判断和路由的组件 - Executable 面向开发者的组件,开发者需要实现该接口,编写业务逻辑 # 功能特性 ## 核心功能 - [X] 支持基于Java代码或者XML配置的线性流程编排 - [X] 支持IF、CHOOSE条件分支 - [X] 支持组件异步 - [X] 支持组件降级以及降级回调 - [X] 支持IF、CHOOSE、PIPELINE嵌套子流程 - [X] 支持组件回滚 - [X] 支持组件适配,以复用子流程 - [X] 生成执行路径树 ## 高级功能 - [X] 支持Spring环境XML配置集成 - [X] 支持实时生成流程引擎结构图 - [X] 支持多种条件表达式(Groovy、OGNL、JavaScript等) - [X] springboot集成 - [X] 占位符替换 - [X] shell命令指令 - [X] 自定义方法执行 ## 管理功能 - [X] 支持自定义执行数据采集 - [X] 支持HTTP方式引擎数据上报(包含执行数据) - [X] 支持组件动态管理(动态降级、启用组件等功能) - [X] 简易管理后台 - [X] 引擎编辑/管理 - [X] 页面编排 - [X] 可视化执行链路 - [X] 执行统计日志视图 - [X] 实时视图 - [X] 支持从数据库等存储介质重新加载 更多使用文档见: [官方文档](https://www.yuque.com/yamikaze/smart-flow)