How flowable/flowable-engine works
Flowable is a Java workflow/BPM platform combining BPMN process, CMMN case, and DMN decision engines, with Java and REST APIs and Spring integration. Its principal user journey is to submit work through an API, have an engine orchestrate process/case activity and decisions, and retrieve resulting state; the README describes these capabilities but does not establish detailed runtime routing. The sampled code confirms shared command/session infrastructure, entity persistence/event handling, CMMN agenda creation, and external-worker job querying. Dashed, uncited links represent documented capabilities whose implementation wiring was not sampled.
Main entry points: RuntimeService.java Java APIs · CmmnEngineAgendaSessionFactory.java CMMN cases · AbstractProcessEngineEntityManager.java Process persistence
Components 9
API interfaces
- Java APIs
modules/flowable-engine/src/main/java/org/flowable/engine/RuntimeService.java - REST APIs
Workflow engines
- BPMN processes
- CMMN cases
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/agenda/CmmnEngineAgendaSessionFactory.java - DMN decisions
Execution runtime
- CMMN agenda
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/agenda/CmmnEngineAgendaSessionFactory.java
State persistence
- Process persistence
modules/flowable-engine/src/main/java/org/flowable/engine/impl/persistence/entity/AbstractProcessEngineEntityManager.java - Workflow state
Other components
- User or client
Connections 11
- User or client → Java APIs: submits work
- User or client → REST APIs: submits work
- Java APIs → BPMN processes: submits work
- REST APIs → BPMN processes: submits work
- BPMN processes → CMMN cases: orchestrates cases
- BPMN processes → DMN decisions: uses decisions
- CMMN cases → CMMN agenda: creates agenda
modules/flowable-cmmn-engine/src/main/java/org/flowable/cmmn/engine/impl/agenda/CmmnEngineAgendaSessionFactory.java - BPMN processes → Process persistence: persists state
- Process persistence → Workflow state: stores entities
- Workflow state → Java APIs: returns state
- Workflow state → REST APIs: returns state