Invariant Or Business Rule Block
An invariant is a rule that must remain true for the model to be valid.
When To Use It
Use this block when a rule is important enough to make visible on the canvas. Some rules belong inside an aggregate because they must be enforced immediately. Others belong in policies because they describe follow-up behaviour.
Required Data
- Name: short rule label, such as No Double Booking.
- Rule statement: precise business wording.
- Scope: aggregate, policy, bounded context, integration, or user interface.
- Enforcement point: command validation, aggregate decision, policy condition, or external check.
- Failure outcome: rejection reason, escalation, compensation, or manual review.
Recommended Data
- Examples: accepted and rejected scenarios.
- Owner: domain expert or team who can change the rule.
- Source: policy document, contract, law, internal standard, or domain expert decision.
- Change frequency: rare, seasonal, frequent, experimental.
Examples
- An appointment slot cannot be assigned to two active appointments.
- A refund cannot exceed the captured payment amount.
- A claim cannot be approved without required evidence unless a supervisor override is recorded.
- A subscription cannot have more active seats than its plan allows.