[Open Source] A Domestic Rule Engine Framework for Orchestrating Complex Component-Based Business Processes
![[Open Source] A Domestic Rule Engine Framework for Orchestrating Complex Component-Based Business Processes](https://yy123.ink/api/img/1782598421006-jxzagq.jpg)
1. Project Overview

LiteFlow is a lightweight yet powerful domestic rule engine framework designed for orchestrating complex component-based business processes. Its unique DSL-driven rules control entire complex business workflows. It supports seamless rule refreshing and hot deployment, as well as embedding rules written in multiple scripting languages. It helps make systems smoother and more flexible.
LiteFlow was officially open-sourced in 2020. Since then, it has become an influential project among open-source rule engines in China. Most importantly, LiteFlow continues to evolve rapidly through ongoing development.
LiteFlow is a community-driven project, and we place great importance on community development. We have a user community of more than 5,000 members. If you encounter any problems or have suggestions while using LiteFlow, you can share them with the community.
You can find instructions for joining the community on the official LiteFlow website!
2. Open Source License
Licensed under Apache-2.0
3. Screenshots


4. Feature Overview
LiteFlow
A lightweight, fast, stable, and orchestratable component-based rule engine. It features a newly designed DSL rule expression language. With component reuse, synchronous and asynchronous orchestration, dynamic orchestration, support for a wide range of scripting languages, complex nested rules, hot deployment, seamless rule refreshing, and many other features, it helps accelerate development efficiency!
Features
- Unified Component Definition:
All logic is implemented as components, providing a unified component-based implementation approach for all business logic. Small in size, powerful in capability. - Lightweight Rules:
Processes are orchestrated using rule files. You can learn the basics of rule configuration in just 5 minutes. Easy to understand at a glance. - Flexible Rule Formats:
Rules support three file formats: XML, JSON, and YAML. Choose whichever format you prefer. - Flexible Orchestration:
Even the most complex logical processes can be easily implemented using LiteFlow rules. Simply reading the rule files reveals how the logic works. - Rule Persistence:
The framework natively supports storing rules in standard relational databases, Nacos, Etcd, Zookeeper, Apollo, and Redis. You can also extend it yourself to store rules anywhere. - Elegant Hot Refresh Mechanism:
When rules change, there is no need to restart your application. Rules are updated instantly. Even under high concurrency, refreshing rules will not cause inconsistencies in rules currently being executed. - Broad Compatibility:
Whether your project is built on Spring Boot, Spring, or any other Java framework, LiteFlow handles it with ease. - JDK Support:
Supports everything from JDK 8 to JDK 17. No need to worry about JDK versions. - Comprehensive Spring Boot Support:
Supports Spring Boot 2.X through the latest Spring Boot 3.X. - Scripting Language Support:
You can define scripting language nodes. Supported languages include Groovy, JavaScript, QLExpress, Python, Lua, Aviator, Java, and Kotlin. More scripting languages will be supported in the future. - Seamless Integration Between Scripts and Java:
All supported scripting languages can call Java methods and even reference arbitrary instances. Calling RPC services from scripts is also supported. - Nested Rule Support:
As long as you can imagine it, you can use simple expressions to implement complex logic orchestration with multiple levels of nesting. - Component Retry Support:
Components support retries. Each component can have its own custom retry configuration and specified exceptions. - Context Isolation Mechanism:
A reliable context isolation mechanism ensures that you do not need to worry about data interference under high concurrency. - Declarative Component Support:
You can instantly turn any of your classes into components. - Detailed Execution Information:
See exactly how your execution chain runs, how long each component takes, and what errors occur. - Stable and Reliable:
After more than two years of continuous iteration, it has been running stably in the core systems of many major companies. - Excellent Performance:
The framework itself introduces virtually no additional performance overhead. Overall performance depends on the execution efficiency of your components. - Built-in Basic Monitoring:
The framework includes a built-in command-line monitoring tool that displays component execution time rankings.
☘️ Suitable Use Cases
LiteFlow is an orchestration-based rule engine that excels at decoupling your system. If your system has complex business logic and bloated code, the LiteFlow framework can be an excellent solution.
LiteFlow uses rule expressions as its driving engine to execute the components you define. Have you ever wondered how to implement a multithreaded workflow like the following?

All of this can be achieved effortlessly with LiteFlow! The framework's expression language has a very low learning curve, yet it can handle extremely complex orchestration scenarios.
LiteFlow provides an extensive, easy-to-understand documentation system that can help you solve more than 95% of the problems you may encounter when using the framework.
To date, LiteFlow has more than 2,000 test cases, and the number continues to grow. Comprehensive documentation combined with extensive test coverage ensures the stability of the LiteFlow framework!
Discover what LiteFlow can do for you!
5. Tech Stack
Architecture Diagram

☕️ JDK Compatibility
LiteFlow requires JDK 8 as its minimum version and supports all versions from JDK 8 to JDK 17.
If you are using JDK 11 or later, make sure your LiteFlow version is v2.10.6 or later.
Starting with LiteFlow v2.10.6, extensive test coverage was added for JDK 11 and JDK 17, with all more than 2,200 test cases passing. Versions earlier than v2.10.6 have not been validated by test coverage on JDK 11 and later.
Please note that if you are using JDK 9 or later, make sure to add the following parameter to your JVM options.