@@ -38,23 +38,31 @@ For a simpler version without BPMN, see [`examples/feathers-tasks-orchestration`
3838
3939The example [ workflows/example.bpmn] ( workflows/example.bpmn ) models a 4-step pipeline with a parallel branch:
4040
41+ ``` mermaid
42+ flowchart LR
43+ start(( )) --> ingest["<b>Ingest data</b><br/><i>docker-job · 3 steps</i>"]
44+ ingest --> split{{"+"}}
45+ split --> procA["<b>Process A</b><br/>model inference<br/><i>k8s-job · 4 steps</i>"]
46+ split --> procB["<b>Process B</b><br/>data transform<br/><i>k8s-job · 2 steps</i>"]
47+ procA --> join{{"+"}}
48+ procB --> join
49+ join --> export["<b>Export result</b><br/><i>docker-job · 2 steps</i>"]
50+ export --> done((( )))
51+
52+ classDef startNode fill:#52c41a,stroke:#389e0d,stroke-width:2px,color:#fff
53+ classDef endNode fill:#f5222d,stroke:#a8071a,stroke-width:3px,color:#fff
54+ classDef docker fill:#1890ff,stroke:#0050b3,color:#fff
55+ classDef k8s fill:#722ed1,stroke:#391085,color:#fff
56+ classDef gateway fill:#fadb14,stroke:#d48806,color:#000
57+
58+ class start startNode
59+ class done endNode
60+ class ingest,export docker
61+ class procA,procB k8s
62+ class split,join gateway
4163```
42- Start ──► Ingest (docker-job, 3 steps)
43- │
44- ▼
45- [parallel split]
46- / \
47- Process A Process B
48- (k8s-job, 4 steps) (k8s-job, 2 steps)
49- \ /
50- [parallel join] ← waits for both branches
51- │
52- ▼
53- Export (docker-job, 2 steps)
54- │
55- ▼
56- End
57- ```
64+
65+ Legend: 🟦 Docker container (dockerode) · 🟪 Kubernetes pod (K8s API) · 🟨 parallel gateway (split / join).
5866
5967Each ` serviceTask ` carries two custom extension attributes:
6068
0 commit comments