rule-engine
rete · yaml / json · deterministic
A forward-chaining rule engine for services where the rules
change more often than the code deploys.
An in-process, JVM rule engine that replaces nested conditionals
with declarative rules written in YAML or JSON, validated against
a published schema, and compiled once at startup into an
immutable, thread-safe structure. The same facts in the same
order produce the same firings, on any host, in any year, because
the engine owns no clock — decisions stay explainable and
reproducible long after they're made.
-
Working memory, matchers, and session management.
-
Rule validation and network compilation.
-
YAML / JSON rule-file parsing — the recommended entry point.
-
Optional Common Expression Language integration.
-
Optional fact schema validation.
-
rule-engine-observability
view →
Tracing, diagnostics, and match explanation.
-
Test fixtures and verification harnesses.
Pattern matching supports joins, negation (notExists),
universal quantification (forAll), and aggregations
(accumulate) as first-class constructs. Three
independent matchers — a naive oracle, an indexed Rete-style
network, and a streaming matcher — are required to agree on
identical firing sequences.
- Java 25
- Gradle
- Jackson 3
- Rete
- CEL
- JSON Schema