Understanding Decisions

A Decision is a versioned artifact encapsulating deterministic business logic behind a typed input/output contract. It fits reusable policies that deserve their own lifecycle, tests, and traceability.

When to use a Decision

Use a Decision when logic must be shared across several processes, evolve independently from orchestration, or remain explainable as business rules. For a local transformation or simple condition, a binding, expression, or process router is usually more direct.

Decision for policy, process for effects

A Decision calculates a result from input values. It does not implicitly read platform resources and triggers no external effect. The process then uses that result to route or perform an action.

For example, a credit policy may receive the requested amount, current exposure, and a risk score, then return approved, review, or rejected. The Decision carries the policy; the process determines what happens next for each outcome.

A decision table makes input conditions and possible business-policy results visible.
A decision table makes input conditions and possible business-policy results visible. Enlarge

Typed contract, deterministic logic

Ormuz inputs and outputs are the public boundary of a Decision. Internal logic may use primitives offered by Decision Studio, but the Decision is consumed as a deterministic business function: the same input values and same revision produce the same result.

Typed inputs
Decision business logic
Typed outputs
Process route / action

The Decision calculates; the process orchestrates what to do with the result.

A choice output may define available routes when a Decision is used in a process. The output contract then becomes the source of truth for branches exposed by the evaluation node.

Revisions and publication

Working changes produce immutable snapshots. Executions and processes reference a precise revision so a later logic change does not retroactively modify behavior already published.

Historical versions remain readable and Releases identify promoted snapshots. This separation lets a policy evolve while preserving the exact identity of what executed.

See Versions, Releases, and deployment for the shared lifecycle and Working-snapshot retention.

Use a Decision in a process

The Evaluate decision node references a Decision definition and revision. Its parameters derive from the input contract; outputs and routes derive from the output contract. The process therefore remains typed end to end without manually copying the Decision structure.

For construction, tests, and execution traces, see Build, test, and observe a Decision.