bpmn-engine
v25.0.1
Published
BPMN 2.0 execution engine. Open source javascript workflow engine.
Downloads
11,144
Maintainers
Readme
bpmn-engine
Introduction
BPMN 2.0 execution engine. Open source javascript workflow engine.
- API
- Changelog
- Examples
- Upgrade version
- Peer dependencies
- bpmn-moddle 9 vs 10
- Supported elements
- Extensions
- Debug
- Example process
- Acknowledgments
Peer dependencies
The runtime dependencies are declared as peer dependencies, so you install and pin them yourself and the engine reuses your single copy:
npm install bpmn-engine bpmn-elements bpmn-moddle moddle-context-serializer debug smqp| Peer dependency | Range | Role |
| ---------------------------------------------------------------------------------- | --------- | ------------------------------------------------- |
| bpmn-elements | >=18 | element behaviour functions |
| bpmn-moddle | >=9 | BPMN XML parser (9 vs 10) |
| moddle-context-serializer | >=6 | persistable source context |
| smqp | ^13.0.1 | message broker driving execution |
| debug | >=4 | logging |
bpmn-moddle spans a major version on purpose — see bpmn-moddle 9 vs 10 for the import change and how persisted state stays compatible across the upgrade.
Supported elements
See bpmn-elements for supported elements. The engine only support elements and attributes included in the BPMN 2.0 scheme, but can be extended to understand other schemas and elements.
The aim is to, at least, have BPMN 2.0 core support.
Extensions
The engine can be extended to understand other schemas and elements. Docs, guides, and ready-made extensions for the BPMN stack are published at 0dep.se — check there before writing a new extension from scratch.
Two ready-made extensions:
Debug
This package is shipped with debug activated with environment variable DEBUG=bpmn-engine:*. You can also provide your own logger.
More granular debugging can be achieved by filtering on element type:
DEBUG=*scripttask*,*:error:*or on Windows PowerShell:
$env:DEBUG='bpmn-engine:*'and to turn it off you need to:
$env:DEBUG=''A pretty image of a process

Acknowledgments
The bpmn-engine resides upon the excellent library bpmn-io/bpmn-moddle developed by bpmn.io
All diagrams are designed with Camunda modeler.
