The OPM language
Zooming in
OPM keeps big systems readable by zooming: a process can contain a diagram of its own sub-processes. In Spoletta that is a flow process, and the objects it takes and yields outside are its interface inside.
Zooming in and out
- Double-click a flow process, press its magnifier (Zoom in), right-click it and choose Zoom in, or press Open its board in its settings.
- A breadcrumb at the top of the canvas, Flow › Each exception, takes you back out.
- To turn processes you already drew into a flow process, select them (shift-click or drag a box) and press Group into flow in the toolbar.
The interface
Nothing is declared twice. The objects linked to the flow process outside are the same objects inside:
- What it takes sits above the inner Start and leads into it; what it yields sits above End.
- They are drawn dashed. You can move them, but not delete them from inside.
- Processes inside link to them directly. The inner Start's process is given everything the flow process was given, linked to it or not.
Once per item
When a flow process takes a list, it runs once per item, and inside it the list object is the item. Whatever the inner processes generate of a list the flow process yields is one item of it, and the items are collected into the list outside. Each item gets its own git branch, so items running at once don't meet.
Tick Record each time it runs as a run of its own and each item becomes a run of its own, listed under the outer run, whose failure or duplicate only ends that item's branch. See Lists and items.
Each exception is a flow process, made of processes of its own.
Each exception takes Exceptions.
Each exception yields Outcomes.
Each exception zooms into:
Fix takes Exceptions.
Fix yields Patch.
Open PR yields Outcomes.
Each exception starts with Fix.