Sub-Process
An activity that expands into its own internal flow, the way BPMN lets you keep a diagram readable.
What a sub-process is
A sub-process is an activity that contains its own internal flow. When collapsed, it looks like a regular task with a small plus sign in the bottom centre. Expanded, it shows the full internal process in-line. Decomposing a complex process into nested sub-processes is how BPMN keeps diagrams legible: a top-level diagram with ten to fifteen nodes, each detailed in its own sub-process.
Sub-processes come in three important variants. An *embedded* sub-process is the default. Its internal flow belongs to the parent diagram and is invoked only from there. An *event sub-process* is triggered by an event inside the parent and handles cross-cutting concerns like error handling or escalation. A *transaction sub-process* supports compensation: if it does not commit, every step inside it can be undone by a compensation handler.
When to decompose
- A diagram with more than twenty nodes at one level is almost certainly a candidate for decomposition. Readability collapses long before the syntax does.
- A run of steps that always executes together and has no branching inside: good candidate to encapsulate as a sub-process.
- A chunk of logic that logically belongs to one team or system: "the compliance sub-process", "the payment sub-process". Decomposition respects ownership.
- A section with its own error-handling concerns: wrap it as a sub-process so you can attach a single error boundary event to the whole thing instead of attaching handlers to each individual step.
Sub-processes in LucidFlow
LucidFlow groups related activities into sub-processes automatically when a source document describes a well-bounded sub-flow ("after the sales team handles lead qualification, compliance runs a three-step KYC process"). The cost dashboard rolls sub-process cost up to the parent view, so a collapsed sub-process in the top-level diagram still shows its aggregate cost, duration, and heatmap colour. Expanding the sub-process in place reveals the full detail without losing context.
Frequently asked questions
What is the difference between a sub-process and a call activity?
A sub-process is embedded: it lives inside the parent diagram. A call activity is a reference: it points to a separately-defined global process. Use sub-processes for local decomposition. Use call activities for reusable sub-flows called from many diagrams.
Can a sub-process have its own start and end events?
Yes. An expanded sub-process has its own internal start and one or more end events. Those are the entry and exit of the sub-process; they are not the top-level start/end events of the whole diagram.
When should I use a transaction sub-process?
When the contained work has strict "all or nothing" semantics: payment flows, reservations, any process where a partial completion is worse than no completion. Transaction sub-processes come with compensation semantics that let every activity inside be undone in reverse order.