ADR: diploma-eligibility DMN evaluated as a BPMN businessRuleTask (S-13) #100
Closed
opened 2026-07-17 09:49:47 +00:00 by not
·
1 comment
No Branch/Tag Specified
main
ci/175-deploy-on-merge
feat/177-public-tls-edge
ci/168-helm-chart-ci-gate
docs/169-mkdocs-nav
feat/25-helm-kubernetes-caddy
fix/161-e2e-bounded-and-diagnosable
feat/162-werkbak-live-refresh
feat/132-medewerker-mfa
fix/156-tempo-ingester-healthcheck
feat/153-projection-sourced-from-objecten
feat/152-objecten-publishes-to-nrc
feat/149-acl-writes-registerrecord
feat/141-registerrecord-objecttype
perf/verify-stack-uwsgi-oz-nrc
fix/144-verify-stack-uwsgi
feat/140-objecten-up
feat/139-objecttypen-up
feat/131-default-fill-crud
chore/136-ci-job-summaries
fix/134-verify-stack-scheduling
feat/130-beheer-catalogi
feat/124-metrics-dashboards
ci/127-parallel-jobs
feat/123-distributed-traces
feat/111-self-service-resume
feat/113-acl-zaaktype-by-identificatie
fix/110-compose-local-flow
fix/115-e2e-single-worker
docs/111-backlog-s26
feat/106-close-zaak-on-timeout
feat/103-diploma-upload-documenten
feat/102-document-wait-timeout
feat/14-dmn-diploma-eligibility
feat/15-beoordeling-escalation
fix/portal-nginx-resolver
fix/local-eventsubscriber-acl
feat/12-withdrawal-portal
fix/91-local-compose-parity
feat/12-withdrawal-bff
feat/12-withdrawal-workflow
feat/12-withdrawal
feat/13-behandel-portal
feat/13-behandel-decide
feat/13-behandel-bff-auth-werkbak
feat/13-workflow-user-tasks
feat/13-behandel-decision-model
chore/release-2026.07.0
feat/78-reference-correlation
feat/75-approval-flow
feat/10-openbaar-portal
chore/73-ci-speedups
feat/68-e2e
feat/67-self-service-form
feat/66-api-client
feat/65-nx-workspace
feat/8-bff
feat/6-domain-service
feat/7-event-subscriber-projection
feat/56-nrc-notification-wiring
test/46-acl-openzaak-integration
feat/47-acl-mutation-baseline
ci/30-gitea-actions-ci
feat/5-acl-open-zaak
feat/4-flowable
feat/3-keycloak
feat/2-opennotificaties
feat/2-catalogus-seed
feat/10-openzaak-compose
feat/32-docs-scaffold
feat/31-contributor-workflow
feat/30-gitea-actions-ci
feat/29-bff-docker-compose
chore/remove-bootstrap-scripts
feat/28-bff-health
docs/split-s00
v2026.07.0
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
eho (Edwin van den Houdt)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: eho/register-referentie#100
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Recorded ahead of S-13 (#14) per CLAUDE.md §14 (non-obvious decision + touches the workflow boundary). ADR file will land as
docs/architecture/adr-0016-*.mdin the implementing PR.Decision to be made: Where is the diploma-eligibility DMN evaluated, and how does it drive the foreign→CBGV-advies routing?
Context / forces: The Flowable REST app bundles a DMN engine, and the same
repository/deploymentsendpoint that deploysregistratie.bpmncan deploy a.dmn. §8.2 makes the Workflow Client the only code that talks to Flowable; the PRD frames the workflow as "BPMN + DMN governing the registration workflow" (orchestration via Flowable as a peer module). The registration must carry a diploma origin (domestic/foreign; eIDAS ⇒ foreign) as the decision input.Options considered:
businessRuleTask(chosen). Flowable evaluates the deployeddiploma-eligibilityDMN inline as a workflow step; an exclusive gateway routes foreign diplomas through a newCBGVAdviesuser task beforeBeoordelen, domestic straight toBeoordelen. Decision logic lives in the engine.Proposed option + why: Option 1. It keeps the decision a first-class workflow concern (matching the PRD's BPMN+DMN framing), avoids coupling the domain to Flowable for a decision, and keeps §8.2 clean — the process the Workflow Client already started runs the DMN itself. The domain's only new responsibility is carrying the diploma origin and passing it as a start variable.
Consequences: The registratie process gains a
businessRuleTask+ exclusive gateway +CBGVAdviesuser task; the DMN is version-controlled inworkflows/and deployed like the BPMN. The DMN is validated live (evaluated in isolation via the DMN API + the foreign path exercised through the process), consistent with ADR-0009/0014/0015. Deviates from #14's literal "evaluated by the Domain Service via Workflow Client" wording — noted on the issue.Coupling rules touched (CLAUDE.md §8): §8.2 — upheld. The Workflow Client remains the only code talking to Flowable; the DMN runs inside the engine as part of the process, not via a domain round-trip.
Resolved: ADR-0016 landed in PR #101 (S-13, merged). The decision recorded there is a DMN service task (
flowable:type="dmn") rather than abusinessRuleTask— the latter binds Flowable's legacy Drools/KIE impl that flowable-rest does not bundle. Closing.