A pure Python workflow engine with BPMN/DMN support for building low-code business applications.
SpiffWorkflow is a workflow engine implemented in pure Python that parses and executes BPMN and DMN diagrams. It enables the creation of low-code business applications by allowing visual process modeling that integrates seamlessly with Python scripting. The engine supports complex workflow patterns and is designed to bridge business process design with technical implementation.
Python developers and businesses building low-code applications, process automation tools, or systems that require visual workflow modeling with BPMN/DMN standards.
Developers choose SpiffWorkflow for its pure Python implementation, extensive BPMN/DMN support, and minimal dependencies, making it a lightweight yet powerful alternative to Java-based workflow engines. It uniquely combines visual business process modeling with Python's flexibility for low-code application development.
A powerful workflow engine implemented in pure Python
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Parses and executes complex BPMN elements like pools, lanes, multi-instance tasks, and events such as timers and signals, as detailed in the README's feature list.
Relies only on lxml for XML parsing, keeping dependencies minimal and making it easy to integrate into Python projects without bloat.
Supports building workflows directly in Python code or from internal JSON data structures, offering developer flexibility alongside visual modeling.
Enables non-developers to design processes with BPMN diagrams that are executed by a Python engine, effectively bridging business process modeling with application logic.
The README admits it's a 'baseline implementation' of DMN, which may lack advanced features or full compliance with the latest DMN standards.
While it parses BPMN diagrams, it doesn't provide a graphical design tool; users must rely on external editors like BPMN.js, adding setup complexity.
As a pure Python library, it's less suitable for polyglot environments or teams that need seamless integration with other language stacks.
Commercial support is available, but open-source reliance on community contributions and Discord may not suffice for enterprise-grade, time-sensitive issues.