1. compileflow 是什么

compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎。

compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成 java 代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。

compileflow 能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。

2. Design Intention

  1. 希望为业务开发提供端至端,从设计至实现的业务流程解决方案。
  2. 提供多种流程引擎,实现从战略至商业能力,商业能力至业务流程,业务流程至系统,并最终实现业务的可视化全局架构。
  3. 设计高效的执行引擎,实现对服务的快速组合或扩展,提升 idea value 的研发响应与交互速度。

3. Features

  1. 高性能:通过将流程文件转换生成 java 代码编译执行,简洁高效。
  2. 丰富的应用场景:在阿里巴巴中台解决方案中广泛使用,支撑了导购、交易、履约、资金等多个业务场景。
  3. 可集成:轻量、简洁的设计使得可以极其方便地集成到各个解决方案和业务场景中。
  4. 完善的插件支持:流程设计目前有 IntelliJ IDEA Eclipse 插件支持,可以在流程设计中实时动态生成 java 代码并预览,所见即所得。
  5. 支持流程设计图导出 svg 文件和单元测试代码。

4. Quick Start

Step1: 下载安装 IntelliJ IDEA 插件(可选)

插件下载地址: https://github.com/alibaba/compileflow-idea-designer

安装说明:请使用 IntelliJ IDEA 本地安装方法进行安装,重新启动 IntelliJ IDEA 就会生效。

Step2: 引入 POM 文件

可以在 search.maven.org 查看可用的版本。

注意 : compileflow 仅支持 JDK 1.8 及以上版本。

Step3: 流程设计

下面以ktv demo为例,通过demo的演示和实践了解节点及属性的配置和 API 的使用。

demo描述:N个人去ktv唱歌,每人唱首歌,ktv消费原价为30元/人,如果总价超过300打九折,小于300按原价付款。

S3.1

创建 bpm 文件,如下图:

注: bpm 文件路径要和 code 保持一致,在文件加载模式下流程引擎执行时会根据 code 找到文件。

S3.2

通过插件进行流程设计或者直接编写流程 xml 文件。

S3.3 调用流程

编写如下单元测试:

compileflow 原生只支持淘宝 BPM 规范,为兼容 BPMN 2.0 规范,做了一定适配,但仅支持部分 BPMN 2.0 元素,如需其他元素支持,可在原来基础上扩展。

5. 更多资料

6. 欢迎加入 compileflow 开发群

  1. 请钉钉联系 @余苏 @徐工 @梵度 @哲良 @无相
使用阿里云构建弹性可扩展的服务器less架构
在现代的软件开发中,构建弹性可扩展的架构是至关重要的。而阿里云提供了一种强大的方式来实现这一目标,那就是服务器less架构。服务器less架构使开发人员能够专注于编写代码,而不必关注底层的服务器管理和扩展性。在本文中,我们将探讨如何使用阿里云构建弹性可扩展的服务器less架构。
如何构建可扩展的前端架构
作为一名前端开发者,你可能会发现你的应用程序在不断地增长,而你需要不断地修改代码才能满足新的需求。这时候,一个可扩展的前端架构就显得尤为重要了。在本文中,我将介绍一些构建可扩展前端架构的最佳实践。
一种基于事件驱动架构的 SAP 产品集成方案介绍(二)
Kyma 是SAP开源的一个基于 Kubernetes 的云原生应用开发平台,能够允许SAP的partners以简捷而现代的方式,对SAP的云解决方案和传统On Premises产品进行连接,集成和扩展。
一种基于事件驱动架构的 SAP 产品集成方案介绍(一)
Kyma 是SAP开源的一个基于 Kubernetes 的云原生应用开发平台,能够允许SAP的partners以简捷而现代的方式,对SAP的云解决方案和传统On Premises产品进行连接,集成和扩展。
开源OpenIM:高性能、可伸缩、易扩展的即时通讯架构
网上有很多关于IM的教程和技术博文,有亿级用户的IM架构,有各种浅谈原创自研IM架构,也有微信技术团队分享的技术文章,有些开发者想根据这些资料自研IM。理想很丰满,现实很骨感,最后做出来的产品很难达到商用标准。事实上,很多架构没有经过海量用户的考验,当然我们也不会评判某种架构的好坏,如果开发者企图根据网上教程做出一个商用的IM,可能有点过于乐观了。本文主要从我个人角度深度剖析100%开源的OpenIM架构。当然,世界上没有最完美的架构,只有最合适的架构,也没有所谓的通用方案,不同的解决方案都有其优缺点,只有最满足业务的系统才是一个好的系统。而且,在有限的人力、物力,综合考虑时间成本,通常需要做