← All capabilities

Declare your business logic.
The engine enforces it.

A declarative, in-place rules engine that runs inside your app's own database transaction. Author rules in JSON or a visual builder — no code, and no schema changes, ever.

The four classic business-rule types.

  • Derivations
    Compute a field from an expression — transient, or persisted to an existing column.
  • Inferences
    When a condition holds, set a property on the object.
  • Action-enablers
    When a condition holds, instantiate related objects — several actions can fire from one rule.
  • Constraints
    Block invalid transactions with the rule's own message before they ever commit.
config/business_rules/business_rules.json
{
  "id": "order_total",
  "type": "formula",
  "target_model": "Order",
  "output_field": "total",
  "expression": "sum(items.price * items.quantity)"
},
{
  "id": "vip_reward",
  "type": "inference",
  "target_model": "Order",
  "condition": "total > 1000 and user.tier == 'gold'",
  "actions": [
    { "create_object": "RewardPoints",
      "properties": { "points": 500 } }
  ]
}

Safe by construction

  • Runs in your transaction
    Forward-chains to quiescence on every flush — computing values, inferring properties, creating objects, blocking invalid writes.
  • No DDL, ever
    The engine reads and writes rows only — it never alters your schema.
  • AST-restricted evaluator
    A self-contained, allow-listed expression evaluator that never uses eval().
  • Clear constraint errors
    A violated constraint returns the rule's own message to the UI, not an opaque 500.

Authored visually

  • Visual Business Rule Builder
    Build rules without hand-editing JSON, modelled on the Journey Builder.
  • Condition builder
    Compose clauses joined by and/or for inference and constraint conditions.
  • Field-path pickers
    Pick columns and one level of relation.column for expressions, targets and operands.
  • Hot reload
    The engine reloads on file change and refreshes immediately after each edit.

Logic that's enforced everywhere.

See how declarative rules fit your data model.

Talk to Us → Explore Capabilities