<p align="center">
<a href="https://liteflow.yomahub.com/">
    <img src="static/img/logo-main.svg" alt="logo">
</a>
</p>

[中文](README.zh-CN.md)

<h3>Your star is my motivation to keep going. If you like LiteFlow, please help me with a star in the upper right corner.</h3>

## Overview
LiteFlow is a lightweight and powerful rules engine framework, which can be used in the field of complex componenzed business orchestration. DSL rules drive the whole complex business, and can achieve smooth refresh hot deployment, supporting the embedding of multiple scripting language rules. Help the system become more silky and flexible.

LiteFlow was officially open source in 2020 and won the title of "the Most Popular Open Source software" in China in 2021. Gitee-GVP award in 2022. It is an open source project that is growing rapidly.

LiteFlow is a community-driven project. We take community building very seriously. We have a community of more than 800 users who can respond to any problems or suggestions they encounter.

You can find out how to join the community on the official website!

## Website url: [Click here to access the official website](https://liteflow.yomahub.com/en)
## Documents url: [Click here to enter the documentation to learn](https://liteflow.yomahub.com/en/pages/5816c5/)
## Demo projects: [DEMO1](https://github.com/bryan31/message-demo) | [DEMO2](https://gitee.com/bryan31/liteflow-example)

## Feature
* **Component definition unified:** All logic is a component, for all logic to provide a unified component implementation, small size, large energy.
* **Rules lightweight:** based on the rules file to arrange the process, learning the rules entry only takes 5 minutes, a read both understand.
* **Rule diversification:** rules support XML, JSON, YML three rule file writing methods, which you like to use.
* **Arbitrary arrangement:** Synchronous asynchronous mixing, no matter how complex the logic process, using LiteFlow rules, are easy to do, see the rules file to see how the logic works.
* **Rules can be loaded from anywhere:** The framework provides implementations of local file configuration sources and ZK configuration sources, as well as an extension interface that allows you to store rules anywhere.
* **Elegant hot refresh mechanism:** Rule changes, instant change of application rules without restarting your application. High concurrency does not cause any errors in executing rules due to refreshing rules.
* **Wide support:** LiteFlow works regardless of whether your project is built on Springboot, Spring, or any other Java framework.
* **JDK support:** From JDK8 to JDK17. Don't worry about JDK versions.
* **Scripting language support:** Scripting language nodes can be defined, supporting both QLExpress and Groovy scripting. More scripting languages will be supported in the future.
* **Rule nesting support:** You can use simple expressions to create multiple nested complex logic layouts if you want.
* **Component retry support:** Components can support retry, and each component can customize the retry configuration and specify exceptions.
* **Context isolation mechanism:** Reliable context isolation mechanism, you do not have to worry about high concurrency data flow.
* **Declarative component support:** You can make any of your classes become components in seconds.
* **Detailed step information:** How your link performs, how much time each component takes, what errors are reported at a glance.
* **Stable and reliable:** has been iterating for more than 2 years, running stably on the core systems of major companies.
* **Excellent performance:** the framework itself consumes little extra performance, depending on the efficiency of your component execution.
* **Built-in simple monitoring:** Built-in a command line monitoring framework, you can know the running time ranking of each component.

## What scenarios apply

LiteFlow is a choreographed rules engine that is best at decoupling your systems. If you have a complex system with bloated code, the LiteFlow framework is a great solution.

LiteFlow uses regular expressions to drive the engine that you define. Have you ever thought about how to write multithreaded process choreography like the following?

<img src="static/img/flow_e1.svg" style="zoom: 80%">
<img src="static/img/flow_e2.svg" style="zoom: 80%">

These processes can be easily solved with LiteFlow! The framework has a very low threshold to learn the expression language, but it can accomplish extremely high complexity of the choreography.

LiteFlow has an extremely detailed and easy-to-understand documentation， it can help you solve more than 95% of your problems when using the framework.

LiteFlow has 658 test cases and more. Complete documentation and comprehensive test case coverage guarantee the stability of LiteFlow framework!

Looking forward to your use！

**DISCORD LINK**

Discord Link: [https://discord.gg/MpdBSBnFTu](https://discord.gg/MpdBSBnFTu)

**WECHAT OFFICIAL ACCOUNT**

Since the community group is over 200 people, you need to be invited to join the group. Follow the WECHAT OFFICIAL ACCOUNT and click `Personal WeChat` to add me, I can invite you into the group

![official-wx](static/img/offical-wx.jpg)

Open source is not easy, please sponsor LiteFlow if you support it

<img src="static/img/support.png" alt="support" width="258" />
