ADR: beoordeling escalation reassigns via external-worker task (S-14) #98
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Recorded ahead of S-14 (#15) per CLAUDE.md §14 (non-obvious decision + bends the workflow boundary). ADR file will land as
docs/architecture/adr-0015-*.mdin the implementing PR.Decision to be made: How does the 14-day boundary timer on the
Beoordelenuser task reassign the open task from thebehandelaargroup toteamlead?Context / forces: Flowable cannot reassign an already-open user task's candidate group from pure BPMN XML — it needs code. The repo has held a "no custom Java/jars in Flowable; Workflow Client is the only thing that talks to Flowable (§8.2)" posture, and already has an external-worker pattern (topic acquire/complete via REST, see ADR-0009). The task must stay open for the teamlead, so escalation must be non-interrupting.
Options considered:
P14DonBeoordelen→ external-workerserviceTaskon a new topic (BeoordelingEscaleren) → Workflow Client acquires the job and PUTs theBeoordelentask to swapcandidateGroupsbehandelaar→teamlead, then completes the job. Reuses ADR-0009 machinery; Workflow Client stays the sole Flowable client.Proposed option + why: Option 1. It keeps §8.2 intact, reuses the existing external-worker infrastructure, and adds no custom code inside Flowable. Cost is a new topic, a worker loop, and a Workflow Client reassign method — all covered by unit + integration tests.
Consequences: Escalation latency is bounded by the worker poll interval (seconds), acceptable for a 14-day timer. The Workflow Client gains a task-reassign capability reusable by future escalations. Flowable stays a stock image.
Coupling rules touched (CLAUDE.md §8): §8.2 (Workflow Client is the only code that talks to Flowable) — upheld, not bent. The BPMN owns the escalation path; the reassignment is delegated to the Workflow Client via an external task, consistent with §8.2.
Accepted and recorded as
docs/architecture/adr-0015-beoordeling-escalation.md, merged in #99 (closes #15). Closing this proposal.