I recently got into a debate with a colleague about modeling an industrial batch process. The argument was simple: "The Operator presses a button, the Machine runs, the Machine finishes, the Operator checks the quality. It’s one timeline. Why split them into two Pools?"
On paper, merging them into one Pool looks clean. Elegant, even.
In the factory, this logic will break things.
He is confusing Time with Control. Just because two things happen one after another doesn't mean they share a brain.
If you want to know if you have one process or two, you don't look at the timeline. You look at the "Agents." Here is how a real engineer detects an Agent—and why you must separate them before we pour concrete.
This is the easiest way to see why your "One Pool" idea fails.
In BPMN, if you put the Operator and the PLC in the same pool, they share a Lifecycle. They share a Token.
If the Token is busy doing Task: Mix Ingredients (PLC), then theoretically, the Operator ceases to exist.
In the real world:
The PLC is a rock with electricity inside. It runs a 20ms scan cycle. It does not sleep. It does not think. It obeys physics.
The Operator is a human. They get tired. They go for a smoke. They spill coffee on the HMI.
If the Operator goes to the bathroom, does the PLC stop the agitator instantly? No. The tank keeps spinning because it has its own brain. Two brains = Two Pools.
You say they are "one process." I say look at the start and end.
The Operator's Process: Starts when the Order comes in. Ends when the paperwork is signed. It is transactional.
The PLC's Process: Starts when I flip the main breaker on the wall. It ends only when the plant shuts down or explodes. It is a Continuous Loop.
If you merge them, you are saying the Operator must stay awake for 5 years until the machine is turned off. We cannot pay that much overtime.
This is where the software guys always get confused.
When you draw a solid arrow (Sequence Flow) from User Task to Service Task, you are saying these two things run on the same CPU.
Your Operator Process runs on a server (Camunda, Web App).
Your PLC Process runs on a Siemens controller in a dusty cabinet.
You cannot run a High-Speed Agitator logic inside a web browser. If you try to model it that way, the first time the Wi-Fi blinks, your tank overheats.
Split them up.
Pool 1 (Operator): The high-level logic. The "Why" we are doing this.
Pool 2 (PLC): The low-level logic. The "How" we survive this.
The "Dashed Line" is the Contract
The space between the pools is not empty space. It is the Interface.
When you use two pools, you must use Message Flows (dashed lines). This is the most important part of the architecture.
The Dashed Line is the TCP/IP packet.
The Dashed Line is the Modbus register.
The Dashed Line is the physical button on the panel.
If you hide this complexity inside one pool, you are lying to the developers. You are telling them "magic happens here." In engineering, magic is just a bug we haven't found yet.