bpmn-js is a mature, extensible JavaScript library for rendering and editing BPMN 2.0 diagrams in the browser. It provides a full-featured modeler (Viewer, NavigatedViewer, Modeler) built on top of diagram-js, with support for import/export of BPMN XML and SVG, undo/redo, copy/paste, element replacement, grid snapping, auto-layout, and a rich set of modeling behaviors that enforce BPMN semantic rules. The architecture follows a modular dependency injection pattern (didi) with event-driven communication, command interceptors for undoable operations, and pluggable providers for context pads, palettes, popup menus, and renderers. The codebase is well-tested with hundreds of integration and unit tests, and includes benchmarks for large diagrams. It is actively maintained by the bpmn.io team and used widely in workflow and process automation tools.
drawio-skill is a comprehensive AI agent skill for generating, editing, synchronizing, inspecting, testing, and publishing editable draw.io diagrams from natural language, codebases, infrastructure-as-code, and data schemas. It provides a unified CLI (`diagramctl.py`) orchestrating a pipeline of 39+ specialized scripts covering importers (Python, JS/TS, Go, Rust, Terraform, K8s, Docker, SQL DDL, OpenAPI, CI pipelines), auto-layout (Graphviz, ELK, deterministic sequence/C4/tube-map), shape search (10k+ official icons), AI/LLM brand logos (321 brands), style presets, diagram diff, time-lapse, heat maps, and export (PNG, SVG, PPTX, Mermaid, HTML viewer). The architecture is centered on a versioned Diagram IR (JSON Schema) that separates meaning, provenance, and geometry, enabling incremental sync preserving manual layout, multi-view projection, architecture contract testing (Diagram-as-Test), what-if failure simulation, and accessible Story Mode. It integrates with agent platforms via a SKILL.md and an optional MCP server (`diagramctl_mcp.py`) exposing nine tools over stdio, and supports CI integration through GitHub Actions for PR diff and architecture test gates. The project is actively maintained with semantic versioning, 174 unit tests, and a changelog tracking releases through v3.2.0.
Flowable is a lightweight, embeddable Business Process Management (BPM) platform written in Java. It provides a suite of engines for BPMN 2.0 process execution, CMMN case management, DMN decision tables, form management, identity management, and event registry. The architecture is modular: core engines, service modules (job, batch, variable, task, identitylink, entitylink), REST APIs, Spring Boot auto-configuration, and integration modules (Camel, CDI, JMX, LDAP, HTTP, secure JavaScript). Key entry points include ProcessEngine, CmmnEngine, DmnEngine, IdmEngine, and EventRegistry. Data flows involve deploying XML definitions, starting process/case instances, executing tasks, handling events, and persisting state to relational databases (MySQL, PostgreSQL, Oracle, DB2, MSSQL, H2, HSQL). The codebase is production-grade with extensive testing, schema migration scripts, and support for GraalVM native images. It is actively maintained with a large community (9.5k stars). However, it carries legacy compatibility modules (flowable5-engine) and some technical debt from the Activiti migration, resulting in moderate technical drift.
SpiffWorkflow is a Python library for executing BPMN 2.0 and DMN 1.x workflows. It provides a complete workflow engine with parsing, execution, serialization, and migration capabilities. The library supports standard BPMN constructs (gateways, events, subprocesses, multi-instance loops, call activities) and DMN decision tables with UNIQUE and COLLECT hit policies. It includes a pluggable Python script engine for evaluating expressions and scripts within tasks, and a comprehensive serialization framework with version migration for workflow persistence. The architecture is modular, with separate packages for core workflow specs, BPMN specifics, DMN integration, Camunda-compatible extensions, and Spiff-specific customizations. This is not a standalone application but a library intended for embedding in larger systems; it is used as the backend for the SpiffWorkflow frontend tools.
Pneumatic is an open-source SaaS workflow management system built with a Django backend and React/TypeScript frontend. The platform enables users to create workflow templates, execute workflows, manage tasks, collaborate with teams, and track progress through a comprehensive UI. It features multi-tenancy, payment processing (Stripe integration), notification systems, file attachments, reporting, and various third-party integrations. The architecture follows a microservices-like separation using Docker Compose, with distinct services for backend, frontend, database (PostgreSQL), caching (Redis), messaging (RabbitMQ), and file storage. The codebase demonstrates solid engineering practices with clear separation of concerns, though it shows some technical debt from using Django 2.2 and accumulated migration complexity.
This repository is a comprehensive collection of example applications for the Apache KIE ecosystem, specifically Kogito, Drools, and jBPM. It demonstrates how to build cloud-native business automation services using DMN decision models, PMML predictive models, DRL rules, and BPMN process orchestration. The examples are structured as runnable microservices for both Quarkus and Spring Boot runtimes, covering a wide range of capabilities including event-driven messaging with Kafka, persistence with PostgreSQL/MongoDB/Infinispan, security with Keycloak OIDC, monitoring with Prometheus/Grafana, and deployment on Kubernetes/OpenShift. The repository serves primarily as a learning and demonstration resource, not as a production library. It features high duplication across the two runtime stacks, with many near-identical examples maintained in parallel. The code is functional and follows standard Kogito patterns, but the emphasis is on showcasing features rather than providing reusable, production-grade components. Some examples use snapshot versions and older infrastructure configurations, indicating active development but also potential drift.