Forward-deployed / AI Knowledge Graph
Flowable

Roadmap β€” Flowable from scratch

The single source of truth for phases and lessons. Status glyphs: βœ… done Β· 🚧 in progress Β· ⬚ planned.

Legend: Type is Build (from-scratch implementation) or Use (real Flowable engine) or Concept (no code β€” PM/architect lesson). Ships is the artifact saved under the lesson’s outputs/.


Phase 0 β€” Orientation & setup 4 lessons βœ…

What Flowable is, where it came from (the Activiti fork), where it sits in the landscape, and getting a local engine running.

# Lesson Type Lang Ships
01 What is a process engine, and when do you want one βœ… Concept β€” decision guide
02 The Flowable platform map: BPMN, CMMN, DMN, event registry βœ… Concept β€” platform map
03 Run Flowable locally: Docker, REST API, first ping βœ… Use Python client
04 The landscape: Flowable vs Camunda 7/8 vs Temporal vs DIY βœ… Concept β€” comparison table

Phase 1 β€” BPMN & the token model 5 lessons βœ…

The execution semantics under every BPMN diagram: tokens moving through a graph. Build a token engine by hand, then deploy real BPMN XML to Flowable.

# Lesson Type Lang Ships
01 Tokens & sequence flow: a process engine in 100 lines βœ… Build Python module
02 Gateways: exclusive, parallel, inclusive βœ… Build Python module
03 BPMN 2.0 XML by hand βœ… Build XML process model
04 Use It: deploy & run on Flowable over REST βœ… Use Python client
05 User tasks vs service tasks: where humans and systems meet βœ… Concept β€” decision guide

Phase 2 β€” The engine: state & transactions 5 lessons βœ…

Why a process engine is really a state machine with a database: wait states, variables, transaction boundaries, and the job executor.

# Lesson Type Lang Ships
01 Wait states & persistence: why the engine sleeps βœ… Build Python module
02 Process variables & scope βœ… Build Python module
03 Transaction boundaries & async continuations βœ… Concept β€” cheat sheet
04 The job executor: timers, retries, async work βœ… Build Python module
05 Use It: the embedded engine in Spring Boot βœ… Use Java starter

Phase 3 β€” User tasks, identity & forms 5 lessons βœ…

The human side: task lifecycle, assignment strategies, candidate groups, delegation, and forms.

# Lesson Type Lang Ships
01 The task lifecycle: created β†’ assigned β†’ completed βœ… Build Python module
02 Assignment: assignee, candidate users, candidate groups βœ… Use Python client
03 Identity management: users, groups, and external IdPs βœ… Concept β€” decision guide
04 Forms: form properties, form keys, external form apps βœ… Use Python client
05 Task queries & the task inbox pattern βœ… Use Python client

Phase 4 β€” Service integration & error handling 6 lessons βœ…

The system side: service tasks, delegates, HTTP tasks, BPMN errors vs technical errors, retries, and compensation.

# Lesson Type Lang Ships
01 Service tasks: delegates, expressions, delegate expressions βœ… Use Java module
02 The HTTP task: calling REST APIs from a process βœ… Use XML process model
03 BPMN errors vs technical errors: two failure planes βœ… Concept β€” cheat sheet
04 Boundary events: catching errors on an activity βœ… Build Python module
05 Retries & incident handling: what happens when a bureau call fails βœ… Use Python client
06 Compensation: undoing completed work βœ… Concept β€” pattern guide

Phase 5 β€” DMN: decisions as tables 4 lessons βœ…

Externalise business rules into decision tables the business can read β€” and change without a deploy.

# Lesson Type Lang Ships
01 A decision engine in 80 lines: rules, inputs, outputs βœ… Build Python module
02 Hit policies: FIRST, UNIQUE, COLLECT and why they matter βœ… Build Python module
03 DMN XML & the decision task: wiring DMN into BPMN βœ… Use XML decision table
04 Who owns the rules? Decision governance for product teams βœ… Concept β€” decision guide

Phase 6 β€” CMMN: case management 4 lessons βœ…

When work doesn’t follow a fixed path: cases, stages, milestones, and sentries β€” and the honest answer on when you actually need CMMN.

# Lesson Type Lang Ships
01 Processes vs cases: prescribed flow vs available work βœ… Concept β€” decision guide
02 Plan items, stages, milestones, sentries βœ… Use XML case model
03 Mixing BPMN and CMMN: process tasks inside cases βœ… Use XML case model
04 When CMMN is overkill (most of the time) βœ… Concept β€” decision guide

Phase 7 β€” Events, timers & messaging 5 lessons βœ…

Time and the outside world: timer events, signals, messages, and the event registry (Kafka, JMS, RabbitMQ).

# Lesson Type Lang Ships
01 Timer events: ISO-8601 durations, cycles, due dates βœ… Build Python module
02 Message events: correlating the outside world to an instance βœ… Build Python module
03 Signals vs messages: broadcast vs point-to-point βœ… Concept β€” cheat sheet
04 The event registry: Kafka in, process out βœ… Use Python client
05 Event subprocesses & interrupting vs non-interrupting starts βœ… Use XML process model

Phase 8 β€” Versioning & migration 4 lessons βœ…

Long-running instances outlive their definitions. Version tags, running-instance migration, and deployment strategy.

# Lesson Type Lang Ships
01 Definition versions: what a redeploy actually does βœ… Use Python client
02 Instance migration: moving live tokens to a new version βœ… Use Python client
03 Blue-green for processes: strategies that survive audits βœ… Concept β€” pattern guide
04 Backward-compatible model changes: a checklist βœ… Concept β€” checklist

Phase 9 β€” Operations & observability 5 lessons βœ…

Running it for real: history levels, the database, async executor tuning, metrics, and the admin surface.

# Lesson Type Lang Ships
01 The history tables: audit trail vs runtime state βœ… Concept β€” cheat sheet
02 History levels & data growth: the retention decision βœ… Concept β€” decision guide
03 Async executor tuning: threads, acquisition, lock times βœ… Use Java settings
04 Metrics & health: what to alert on βœ… Use Python dashboard spec
05 The database is the engine: sizing, indexes, cleanup jobs βœ… Concept β€” runbook

Phase 10 β€” Architecture & product decisions 5 lessons βœ…

The PM/architect capstone layer: embed vs standalone, multi-tenancy, build vs buy, and the honest competitive landscape.

# Lesson Type Lang Ships
01 Embedded vs standalone vs Flowable Work: deployment topologies βœ… Concept β€” decision guide
02 Multi-tenancy: shared engine, shared tables, or neither βœ… Concept β€” decision guide
03 Where the process ends and the domain begins: anti-corruption βœ… Concept β€” pattern guide
04 Build vs buy vs open source: the workflow TCO conversation βœ… Concept β€” decision guide
05 Flowable open source vs Flowable Work vs Camunda 8 vs Temporal βœ… Concept β€” comparison table

Phase 11 β€” Capstone: loan origination 4 lessons βœ…

One end-to-end build: BPMN flow + DMN credit decision + user-task review + bureau service calls + offer-expiry timers + error handling, driven over REST.

# Project Combines Lang Ships
01 The process model: application β†’ decision β†’ offer β†’ disbursal βœ… 1, 4, 7 XML process model
02 The credit decision table βœ… 5 XML decision table
03 The driver: a REST client that runs a full application βœ… 2, 3, 4 Python client
04 Failure drill: bureau down, offer expired, manual override βœ… 4, 7, 9 Python runbook