GithubHelp home page GithubHelp logo

grzeng-go / tumbleweed Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lzw5399/tumbleweed

0.0 1.0 0.0 11.61 MB

Lightweight workflow engine microservice implement BPMN 2.0

License: MIT License

Dockerfile 0.51% Go 99.46% Makefile 0.04%

tumbleweed's Introduction

tumbleweed workflow engine

English | 简体中文

Introduction

Workflow engine based on bpmn 2.0, split users, forms, etc., and focus on the flow of the process itself

Use with workflow designer

https://github.com/lzw5399/tumbleweed-designer

Project positioning

Tumbleweed is a workflow independent microservice to provide RESTful services (subsequent to consider changing to grpc-gateway form). Separate dependencies such as [user/role] and [form] to support multi-tenancy

Processing for [user/role]

  • Designate a tenant for the system connected to the workflow engine
  • Then synchronize the id and name of the user/role that needs to use the workflow in the system to the database of the workflow engine
  • The workflow engine itself only cares about the unique identification of the user/role for approval, etc.

Processing for [Form]

  • The workflow engine itself does not save any form structure and data
  • If there are some gateway conditions in the circulation that need to use form data, assign the judgment field in the form to variable, and then use the variable in the condition expression to judge

Supported bpmn elements

  • Event
    • StartEvent
    • EndEvent
  • Activity
    • UserTask
    • ScriptTask
  • Gateway
    • ExclusiveGateway
    • ParallelGateway
    • InclusiveGateway
  • SequenceFlow

Technology Architecture

golang + echo + gorm + postgres

External component dependencies

No other dependencies except the database (postgres) -mysql needs to replace the driver of gorm and make a small modification to some sql

data access

gorm + postgres

Use the wf schema of the specified database. A database can be used alone or integrated into an existing business database

Support automatic migration (configurable on or off)

Supported features

  • All the basic functions that the above bpmn element should support
  • Countersign
  • Referral for approval
  • Approval time limit Natural day/working day
    • Timeout consequences (automatically pass/reject or no action)
  • WebHook
  • Multi-tenancy
  • Process link for display

Quality assurance

  • Integration Testing

Project supported by JetBrains

Many thanks to Jetbrains for kindly providing a license for me to work on this and other open-source projects.

Jetbrains

tumbleweed's People

Contributors

lzw5399 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.