Powerful Features

Everything you need to define, test, and execute complex business rules in a maintainable way.

New in v1.16.0

Interactive Interview

Run any decision table as a conversation. The engine executes your rules and, whenever it reaches a collect field that wasn't supplied, it pauses and asks — on the CLI or in the browser. Batch execution is unchanged and pays zero overhead.

  • Typed questions: multiple_choice, ascii, number, date
  • Lab-style ranges: number questions flag answers High/Low — never rejected
  • Collect → save → replay: --save, --data, --review
dtrules run --interactive
Serum creatinine?
1.85 mg/dL High
Reference range: 0.7 – 1.3 mg/dL
Penicillin-allergic?
Yes No
Core Feature

Decision Tables

Decision tables provide a tabular way to represent complex business logic. Each column represents a rule, with conditions at the top and actions at the bottom. This format is intuitive for both policy experts and developers.

  • Conditions: Boolean expressions that determine when a rule fires
  • Actions: Operations executed when conditions match
  • Table Types: BALANCED, FIRST, or ALL execution modes
Learn about Decision Tables
Condition
Y
N
*
age >= 18
Action
X
-
X
set eligible = true
Entity: Person
  - name: string
  - age: integer
  - income: decimal
  - dependents: Person[]

Entity: Application
  - applicant: Person
  - submitted_date: date
  - status: string
Data Model

Entity Data Dictionary

Define your data model in Excel using the Entity Data Dictionary (EDD). Specify entities, attributes, their types, and relationships. These are compiled to XML for use by the rules engine.

  • Support for primitives, arrays, and entity references
  • JSON data mapping for rule entities
  • Default values and validation rules
Learn about EDD
DSL

Expression Language

Write conditions and actions in EL (Expression Language) - a readable syntax designed for policy experts. Compiled to efficient bytecode with robust parsing and clear error messages.

  • 330+ operators for math, boolean, string, date, and array operations
  • Human-readable syntax that policy experts can validate
  • Compile-time validation catches errors before runtime
Learn about EL
// Conditions
applicant.age >= 18
applicant.income < poverty_level * 2
count of applicant.dependents > 0

// Actions
set application.eligible = true
add applicant to eligible_list
perform Calculate_Benefits

High Performance

The Go implementation is optimized for production workloads with zero-allocation hot paths.

15,000+
Tax Returns/Second
Production throughput
130x
Faster Operator Lookup
83ns to 0.64ns
24x
Faster Arithmetic
19ns to 0.79ns
<1ms
Average Latency
Complex tax calculation

More Features

Tree Visualization

Visualize decision table call hierarchies as interactive tree diagrams in the UI.

Built-in Testing

Comprehensive test harness for validating rules with detailed execution traces.

Deterministic

Same inputs always produce same outputs. Essential for compliance and auditing.

Excel Integration

Define all rules in familiar Excel spreadsheets. No coding required for rule authors.

REST API Go

Full REST API for rule execution, making integration easy with any language or platform.

Visual UI Go Backend

Modern React-based UI for editing decision tables, entities, and testing rules.

Ready to try it?

Get started with DTRules in just a few minutes.