Process orchestration
Assayra separates assurance policy from business-process coordination.
| Engine | Owns | Cannot do |
|---|---|---|
| Verification workflow | Applicant steps, mandatory evidence, screening, risk and terminal outcome | Coordinate arbitrary staff/SLA processes |
| BPMN process | Human tasks, timers, escalations and bounded connectors around an application | Bypass evidence, workflow or maker-checker approval |
Definition lifecycle
POST /v1/processes/definitions
POST /v1/processes/definitions/{id}/deploy
POST /v1/processes/definitions/{id}/fork
POST /v1/processes/definitions/{id}/retire
Assayra validates a safe BPMN 2.0 subset. Scripts, executable classes, arbitrary expressions, entity declarations and unsupported elements are rejected. Deployed versions are immutable.
Start an application-linked process
{
"definitionId": "procdef_…",
"applicationId": "app_…",
"businessKey": "review:customer_845901",
"variables": {
"queue": "enhanced-review",
"priority": 70
}
}
Definitions marked requiresApplicationLink reject unlinked starts. Only bounded, non-PII variables cross into Flowable.
Event bindings
Bind a deployed definition to an exact tenant workflow and trigger:
{
"workflowId": "wf_…",
"definitionId": "procdef_…",
"trigger": "review_required",
"conditions": {
"countryCodes": ["SG", "AU"],
"minimumRiskScore": 55,
"maximumRiskScore": 89,
"deliveryChannels": ["hosted", "web"]
}
}
Supported triggers include application creation, submission, review, approval and rejection. Bindings can be paused or retired without deleting history.
Delivery guarantees
Process automation uses durable dispatch records, leases, bounded retries and backoff. Failed work enters a dead-letter state and can be retried or reconciled idempotently. The binding, application, process definition and Flowable instance remain linked in the receipt.
Decision hand-off
A final BPMN task can propose approve or reject. Assayra records the proposal, and where required a different authorised checker must countersign before a decision receipt is issued. The process cannot write a final application status directly.