All Projects → alibaba → Compileflow

alibaba / Compileflow

Licence: apache-2.0
core business process engine of Alibaba Halo platform. best engine for trade Scenes

Programming Languages

java
68154 projects - #9 most used programming language
flow
126 projects

Projects that are alternatives of or similar to Compileflow

Spring Cloud Alibaba
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.
Stars: ✭ 20,934 (+11594.97%)
Mutual labels:  alibaba, spring
Nacos Spring Boot Project
Nacos ECO Project for Spring Boot
Stars: ✭ 508 (+183.8%)
Mutual labels:  alibaba, spring
Spring Context Support
An internal support project for spring-context in Alibaba
Stars: ✭ 109 (-39.11%)
Mutual labels:  alibaba, spring
Mgs Machinery
Unity plugin for binding machinery joint in scene.
Stars: ✭ 164 (-8.38%)
Mutual labels:  spring
Angular Spring Data Rest
An AngularJS module to ease the work with a Spring Data REST backend.
Stars: ✭ 165 (-7.82%)
Mutual labels:  spring
Rebuild
Building your business-systems freely! 高度可定制化的企业管理系统 企业中台
Stars: ✭ 169 (-5.59%)
Mutual labels:  spring
Discovery
Discoveries on Sustainable Loading research
Stars: ✭ 174 (-2.79%)
Mutual labels:  compile
Speedment
Speedment is a Stream ORM Java Toolkit and Runtime
Stars: ✭ 1,978 (+1005.03%)
Mutual labels:  spring
Spring Examples
Spring Examples
Stars: ✭ 172 (-3.91%)
Mutual labels:  spring
Compile Hero
🔰Visual Studio Code Extension For Compiling Language
Stars: ✭ 169 (-5.59%)
Mutual labels:  compile
Springinaction3
Code of Spring In Action 3rd, Spring学习笔记
Stars: ✭ 167 (-6.7%)
Mutual labels:  spring
My Spring Learning
My Spring framework learning
Stars: ✭ 165 (-7.82%)
Mutual labels:  spring
Riptide
Client-side response routing for Spring
Stars: ✭ 169 (-5.59%)
Mutual labels:  spring
Spring And Spring Boot
Lab solutions for Spring and Spring Boot course
Stars: ✭ 163 (-8.94%)
Mutual labels:  spring
Appsmith
Low code project to build admin panels, internal tools, and dashboards. Integrates with 15+ databases and any API.
Stars: ✭ 12,079 (+6648.04%)
Mutual labels:  spring
Alimask
😷 alimask 是一个使用 canvas 生成类似阿里巴巴内部网站水印图片的 JavaScript 库。
Stars: ✭ 163 (-8.94%)
Mutual labels:  alibaba
Spring Data Jpa
Simplifies the development of creating a JPA-based data access layer.
Stars: ✭ 2,238 (+1150.28%)
Mutual labels:  spring
Handlebars Helpers
Related projects
Stars: ✭ 2,024 (+1030.73%)
Mutual labels:  compile
Jeecg
JEECG是一款基于代码生成器的J2EE快速开发平台,开源界“小普元”超越传统商业企业级开发平台。引领新的开发模式(Online Coding模式(自定义表单) - > 代码生成器模式 - > 手工MERGE智能开发), 可以帮助解决Java项目90%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省人力成本,同时又不失灵活性。具备:表单配置能力(无需编码)、移动配置能力、工作流配置能力、报表配置能力(支持移动端)、插件开发能力(可插拔)
Stars: ✭ 2,027 (+1032.4%)
Mutual labels:  spring
Source Code Hunter
😱 从源码层面,剖析挖掘互联网行业主流技术的底层实现原理,为广大开发者 “提升技术深度” 提供便利。目前开放 Spring 全家桶,Mybatis、Netty、Dubbo 框架,及 Redis、Tomcat 中间件等
Stars: ✭ 7,392 (+4029.61%)
Mutual labels:  spring
compileflow logo

compileflow

📖 See the 📖 中文文档 for the documents in Chinese.

Build Status Maven Central GitHub release JDK support
License GitHub Stars GitHub Forks GitHub issues

1. Introduction

Compileflow is a very lightweight, high-performance, integrable and extensible process engine.

The Compileflow process engine is an important part of Taobao Business Process Management(TBBPM), which is dedicated to optimizating operations at Alibaba’s Taobao Marketplace. Specifically, Compileflow is designed to focus on pure memory execution and stateless process engines by converting process files to generate, compile and execute java code.

Currently, compileflow powers multiple core systems such as Alibaba's e-commerce stores and transactions.

Compileflow allows developers to design their own business processes through the process editor, which will visualize complex business logic, and build a bridge between designers and development engineers.

2. Design Intention

1.Provide an end-to-end business process solution from design to execution of business development ideas.

2.Offer a variety of process engines to realize the visual global architecture, so that strategy easily translates to visualizations, which lead to enhanced business capabilities, processes and system.

3.Design an efficient execution engine that can support the company's rapid deployment of new services, and capable of streamlining processes that accelerate the development response and interaction speed.

3. Features

1.High performance: It is simple and efficient for compiling and executing java code, which is generated by converting process files.

2.Diverse application scenarios: Widely used across Alibaba's mid-platform solutions; supports multiple business scenarios such as shopping guides, transactions.

3.Integrable: Lightweight and concise design makes it extremely easy to integrate into various solutions and business scenarios.

4.Complete plugin support: Compileflow is currently supported by IntelliJ IDEA and Eclipse plugins. Java code can be dynamically generated and previewed in real-time during the process design. What you see is what you get.

5.Process design drawing:Supports exporting to SVG file and unit test code.

4. Quick start

Step1: Download and install IntelliJ IDEA plugin (optional)

Plugin download address: https://github.com/alibaba/compileflow-idea-designer

Installation instructions: Please use IntelliJ IDEA local installation method to install. Then restart IntelliJ IDEA to activate.

Step2: Import POM file

<dependency>
    <groupId>com.alibaba.compileflow</groupId>
    <artifactId>compileflow</artifactId>
    <version>1.0.0-RC2</version>
</dependency>

Check available version at search.maven.org.

Note: Compileflow only supports JDK 1.8 and above.

Step3: Process design

Refer to the KTV demo below to understand the configuration of nodes and attributes and the use of APIs through the demonstration and practice of the demo.

Demo description: N number of people go to ktv to sing. Each person sing a song. The usual fee for the ktv session is 30 yuan/person, but if the total price exceeds 300 yuan, they would receive 10% off. But if the group's total fee falls under 300 yuan, they need to pay the full price.

S3.1

Create a bpm file, as shown below:

ktv_demo_s1

Note: The path of the bpm file must be consistent with the code. When the process engine executes in the file loading mode, the file will be found according to the code.

S3.2

Design process through plug-ins or write process xml files directly.

S3.3 invoke process

Write the following unit test:

public void testProcessEngine() {
    final String code = "bpm.ktv.ktvExample";

    final Map<String, Object> context = new HashMap<>();
    final List<String> pList = new ArrayList<>();
    pList.add("wuxiang");
    pList.add("xuan");
    pList.add("yusu");
    context.put("pList", pList);

    final ProcessEngine<TbbpmModel> processEngine = ProcessEngineFactory.getProcessEngine();

    final TbbpmModel tbbpmModel = processEngine.load(code);
    final OutputStream outputStream = TbbpmModelConverter.getInstance().convertToStream(tbbpmModel);
    System.out.println(outputStream);
    System.out.println(processEngine.getTestCode(code));

    processEngine.preCompile(code);

    System.out.println(processEngine.start(code, context));
}

Compileflow was designed to support the Taobao BPM specification. It has made adaptations to be compatible with the BPMN 2.0 specification, but only supports some of BPMN 2.0 elements. If other elements are needed, it can be extended on the original basis.

5. More information

DEMO quick start

Detailed description of the original Taobao BPM specification

6. Welcome to join the compileflow development group

Please contact @余苏 @徐工 @梵度 @哲良 @无相

Known Users

Welcome to register the company name in this issue: https://github.com/alibaba/compileflow/issues/9

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].