SpiffWorkflow: A Powerful Python Workflow Engine for BPMN and DMN

SpiffWorkflow: A Powerful Python Workflow Engine for BPMN and DMN

Summary

SpiffWorkflow is a robust workflow engine built entirely in pure Python, designed to support low-code business applications. It offers extensive support for BPMN and DMN processing, enabling non-developers to visually describe complex processes. This powerful engine allows businesses to create clear, coherent diagrams that seamlessly drive applications.

Repository Info

Updated on March 27, 2026
View on GitHub

Introduction

SpiffWorkflow is a powerful workflow engine implemented entirely in pure Python. It builds upon the excellent work of the Workflow Patterns initiative, with extensive support added in recent years for Business Process Model and Notation (BPMN) and Decision Model and Notation (DMN) processing.

The motivation behind SpiffWorkflow is to facilitate the development of low-code business applications in Python. By leveraging BPMN, non-developers can visually describe complex workflow processes using diagrams, which are then seamlessly executed by a powerful Python script engine. This approach allows businesses to create clear, coherent diagrams that directly drive application logic.

Key features include comprehensive BPMN support, covering complex components like pools, lanes, multi-instance tasks, sub-workflows, timer events, signals, messages, boundary events, and looping. It also provides a baseline implementation of DMN, well-integrated with its Python execution engine. For those preferring direct coding, SpiffWorkflow retains support for building workflows in code or running them based on an internal JSON data structure.

Installation

Getting started with SpiffWorkflow is straightforward. You can install it using pip:

pip install spiffworkflow

Examples

Detailed documentation, including code examples and comprehensive guides, is available on the official ReadTheDocs site. For a practical demonstration of SpiffWorkflow in action, you can explore the dedicated example application.

Why Use It

SpiffWorkflow stands out as an excellent choice for several reasons:

  • Pure Python Implementation: Built entirely in Python, it minimizes external dependencies, relying primarily on lxml for XML parsing.
  • BPMN and DMN Support: It offers robust support for industry-standard BPMN and DMN, enabling visual modeling of complex business processes.
  • Low-Code Development: Empowers non-developers to define business logic through diagrams, accelerating application development and reducing reliance on extensive coding.
  • Flexibility: Supports both diagram-driven workflows and programmatic workflow definitions, catering to different development preferences.
  • Active Community and Support: Benefits from an active open-source community and offers commercial support options from Sartography.

Links