Getting it right · 09 · 12 min

Six mistakes almost everyone makes

Each model here is broken. Diagnose it before revealing the answer: the point is to practise reading, not to collect trivia.

Every one of these is a token problem in disguise, which is why the token module came first.

1. An exclusive split, joined by a parallel gateway. What happens at runtime?

Mistake, exclusive split joined by a parallel gateway

An exclusive split joined by a parallel gateway: only one token arrives, the join waits for two, and the process deadlocks.

ApproveReject

2. A parallel split, joined by an exclusive gateway. How many times does the end event fire?

Mistake, parallel split joined by an exclusive gateway

A parallel split joined by an exclusive gateway: both tokens pass the join, so everything after it runs twice.

Check stockCheck credit

3. Everything is structurally valid here. What makes it unreadable?

Mistake, unlabelled gateway and flows

After "Check invoice", a gateway with unlabelled flows to "Pay" and "Query": nothing says when each path is taken.

Check invoicePayQuery

4. Two sequence flows leave one activity with no gateway. What does BPMN say this means?

Mistake, implicit split

"Receive order" has two outgoing flows and no gateway. BPMN reads this as parallel; most people read it as a choice.

Receive orderCheck stockCheck credit

5. The gateway is labelled "Review and decide". Why is that wrong?

Mistake: a gateway labelled as an action

The gateway "Review and decide" pretends to do work. Gateways only route; the review belongs in a task before it.

Review and decideShipRefund

6. One branch reaches an end event. What about the other?

Mistake: a path that never reaches an end event

The "Escalate to manager" branch stops without an end event, so its token has nowhere to go.

Can we resolve it?Escalate to managerResolve directlyResolvednoyes

"Every one of these survives review because the diagram looks tidy. Tidy and correct are different properties, and only one of them is checkable, which is why it pays to run the tokens rather than admire the layout."

After this module you can

  • Spot deadlocks, token multiplication and incorrect connections in a model
  • Explain each fix in terms of token behaviour