Approach to workflow
Design challenges
- Should naturally support real-world requirements:
- Authorizers chosen at run-time, through various look-ups and policies.
- Multiple authorizers, invited all at once.
- Cannot say in advance how many invited, how many must approve.
- Reminders to tardy participants.
- Escalation from non-responsive participants to others.
- Bonus: escalate early if out-of-office.
- Encourage code reuse.
- Support revision control.
- Upgradability: must not entangle business logic with product code.
- Avoid a combinatorial explosion of objects.