Activities

Parallel Multi-Instance Marker

The marker (⦀ three vertical bars) that runs one instance of the activity per collection item, all simultaneously.

Parallel Multi-Instance turns an activity into a fan-out over data: one execution per element of the input collection (approvers, order lines, documents), all active at once. A completion condition may finish it early — e.g. “first rejection decides”.

When to use and avoid

When to use

  • For per-item work with no cross-order dependency: collect three quotes, notify all stakeholders, review every attachment.

  • When wall-clock time matters — parallelism compresses the duration to the slowest item.

  • With completion conditions like “majority approved” to stop early.

When NOT to use

  • When each item's work depends on the previous outcome — sequential MI.

  • When the repetition is condition-driven, not item-driven — loop marker.

  • When downstream systems can't absorb the burst — throttle via sequential MI.

Business example

Collecting approvals from all committee members

Diagrama BPMN: Collecting approvals from all committee members
Collecting approvals from all committee members

Open this example in the HEFLO process editor and explore the diagram from the inside.

Open in the HEFLO editor →

Step by step

  1. Approve proposal (highlighted, ⦀ marker) spawns one instance per committee member — five members, five parallel tasks.
  2. All work simultaneously; the completion condition may close the set early on a unanimous-breaker rejection.
  3. When the instances (or the condition) complete, the flow continues with the consolidated outcome.

Differences

Parallel MI vs Parallel Gateway fan-out

The gateway duplicates *modeled branches* (fixed, drawn ones). Parallel MI duplicates *executions from data* — the diagram stays one activity whether the collection has 3 or 300 items. Data-driven cardinality → MI.

FAQ

Where does the collection come from?

From process data: the MI characteristics reference the collection and per-instance element variable.

Can it finish before all instances end?

Yes — a completionCondition (e.g. nrOfCompletedInstances ≥ 3) cancels remaining instances when satisfied.

Related elements