Skip to content
← All terms

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.

Related terms

← Back to the full glossary