All Projects → knipknap → Spiffworkflow

knipknap / Spiffworkflow

Licence: lgpl-3.0
A powerful workflow engine implemented in pure Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Spiffworkflow

Bpe
💠 BPE: Business Process Engine
Stars: ✭ 178 (-81.44%)
Mutual labels:  bpmn, workflow
CaseManagement
CMMN engine implementation in dotnet core
Stars: ✭ 16 (-98.33%)
Mutual labels:  workflow, bpmn
Kogito Runtimes
Kogito Runtimes - Kogito is a cloud-native business automation technology for building cloud-ready business applications.
Stars: ✭ 188 (-80.4%)
Mutual labels:  bpmn, workflow
Django Lb Workflow
Reusable workflow library for Django
Stars: ✭ 153 (-84.05%)
Mutual labels:  bpmn, workflow
Processmaker
GLPI plugin that provides an interface with ProcessMaker (http://www.processmaker.com/)
Stars: ✭ 21 (-97.81%)
Mutual labels:  bpmn, workflow
Camunda Bpm Platform
Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Spring, Spring Boot, CDI.
Stars: ✭ 2,390 (+149.22%)
Mutual labels:  bpmn, workflow
tumbleweed
Lightweight workflow engine microservice implement BPMN 2.0
Stars: ✭ 23 (-97.6%)
Mutual labels:  workflow, bpmn
Theflow
Workflow automation library for .NET
Stars: ✭ 72 (-92.49%)
Mutual labels:  bpmn, workflow
Bpmn Engine
BPMN 2.0 execution engine. Open source javascript workflow engine.
Stars: ✭ 519 (-45.88%)
Mutual labels:  bpmn, workflow
Pvm
Build workflows, activities, BPMN like processes, or state machines with PVM.
Stars: ✭ 348 (-63.71%)
Mutual labels:  bpmn, workflow
Zeebe
Distributed Workflow Engine for Microservices Orchestration
Stars: ✭ 2,165 (+125.76%)
Mutual labels:  bpmn, workflow
Smartflow Sharp
基于C#语言研发的Smartflow-Sharp工作流组件,该工作流组件的特点是简单易用、方便扩展、支持多种数据库访问、高度可定制化,支持用户按需求做功能的定制开发,节省用户的使用成本
Stars: ✭ 594 (-38.06%)
Mutual labels:  bpmn, workflow
Kogito Examples
Kogito examples - Kogito is a cloud-native business automation technology for building cloud-ready business applications.
Stars: ✭ 96 (-89.99%)
Mutual labels:  bpmn, workflow
Viewflow
Reusable workflow library for Django
Stars: ✭ 2,136 (+122.73%)
Mutual labels:  bpmn, workflow
Jbpm
a Business Process Management (BPM) Suite
Stars: ✭ 1,226 (+27.84%)
Mutual labels:  bpmn, workflow
Zeebe Modeler
Desktop Application for modeling Zeebe Workflows with BPMN
Stars: ✭ 198 (-79.35%)
Mutual labels:  bpmn, workflow
Bpmn Elements
Executable workflow elements based on BPMN 2.0
Stars: ✭ 54 (-94.37%)
Mutual labels:  bpmn, workflow
Docker Camunda Bpm Platform
Docker images for the camunda BPM platform
Stars: ✭ 259 (-72.99%)
Mutual labels:  bpmn, workflow
Workflower
A BPMN 2.0 workflow engine for PHP
Stars: ✭ 540 (-43.69%)
Mutual labels:  bpmn, workflow
Camunda Modeler
An integrated modeling solution for BPMN and DMN based on bpmn.io.
Stars: ✭ 718 (-25.13%)
Mutual labels:  bpmn, workflow

Spiff Workflow

Build Status Coverage Status Code Climate Documentation Status

Summary

Spiff Workflow is a workflow engine implemented in pure Python. It is based on the excellent work of the Workflow Patterns initiative.

Do you need commercial support?

Spiff Workflow is supported by Procedure 8. Get in touch if you need anything!

Main design goals

  • Spiff Workflow aims to directly support as many of the patterns of workflowpatterns.com as possible.
  • Spiff Workflow uses unit testing as much as possible.
  • Spiff Workflow provides a clean Python API.
  • Spiff Workflow allows for mapping patterns into workflow elements that are easy to understand for non-technical users in a workflow GUI editor.
  • Spiff Workflow implements the best possible path prediction for workflows.

Spiff Workflow also provides a parser and workflow emulation layer that can be used to create executable Spiff Workflow specifications from Business Process Model and Notation (BPMN) documents.

Quick Intro

The process of using Spiff Workflow involves the following steps:

  1. Write a workflow specification. A specification may be written using XML (example), JSON, or Python (example).
  2. Run the workflow using the Python API. Example code for running the workflow:
from SpiffWorkflow.specs import WorkflowSpec
from SpiffWorkflow.serializer.prettyxml import XmlSerializer
from SpiffWorkflow import Workflow

# Load the workflow specification:
with open('my_workflow.xml') as fp:
    serializer = XmlSerializer()
    spec = WorkflowSpec.deserialize(serializer, fp.read())

# Create an instance of the workflow, according to the specification.
wf = Workflow(spec)

# Complete tasks as desired. It is the job of the workflow engine to
# guarantee a consistent state of the workflow.
wf.complete_task_from_id(...)

# Of course, you can also persist the workflow instance:
xml = wf.serialize(XmlSerializer, 'workflow_state.xml')

Documentation

Full documentation is here:

http://spiffworkflow.readthedocs.io/en/latest/

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].