Workflow vs. Instance
In kikuflow, "workflow" and "workflow instance" are two distinct concepts. Understanding the difference eliminates a lot of confusion.
Workflow = Template
A workflow is the set of rules you've designed — it defines:
- What are the steps?
- Who handles each step?
- What conditions determine which path to take?
A workflow doesn't "run" — it's a static template. Think of it like a blank form template: it's not the form you're filling out right now.
Instance = One Execution
When someone submits a request, the system creates a workflow instance based on the workflow template. Each instance:
- Has its own submitted form data
- Has its own progress status
- Has its own review history
Multiple instances can run from the same workflow simultaneously. For example, if the "Purchase Request Workflow" has 5 purchase forms in progress today, that's 5 independent instances.
"Purchase Request" Workflow (template)
├── Instance: Alice's request #001 (in review)
├── Instance: Bob's request #002 (completed)
└── Instance── Charlie's request #003 (rejected)⚠️ Common misconception: Why didn't my change affect in-progress requests?
kikuflow uses version locking: every instance locks the workflow version that was active when it was created.
Why? Imagine you changed the reviewers in a purchase workflow — should already-approved steps be recalculated? How would audit records map to the version? It would create chaos.
Correct approach:
- In-progress instances → continue on the old version until complete
- Want new logic → publish a new workflow version; new submissions follow it
See: Version Control