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?
An exclusive split joined by a parallel gateway: only one token arrives, the join waits for two, and the process deadlocks.
2. A parallel split, joined by an exclusive gateway. How many times does the end event fire?
A parallel split joined by an exclusive gateway: both tokens pass the join, so everything after it runs twice.
3. Everything is structurally valid here. What makes it unreadable?
After "Check invoice", a gateway with unlabelled flows to "Pay" and "Query": nothing says when each path is taken.
4. Two sequence flows leave one activity with no gateway. What does BPMN say this means?
"Receive order" has two outgoing flows and no gateway. BPMN reads this as parallel; most people read it as a choice.
5. The gateway is labelled "Review and decide". Why is that wrong?
The gateway "Review and decide" pretends to do work. Gateways only route; the review belongs in a task before it.
6. One branch reaches an end event. What about the other?
The "Escalate to manager" branch stops without an end event, so its token has nowhere to go.
"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
