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