- https://github.com/nemonik/Intellect (Dead - 2017)
- https://github.com/jruizgit/rules (dead)
- https://github.com/cmaclell/py_rete (dead)
- https://github.com/nilp0inter/experta (dead)
- https://github.com/GNaive/naive-rete (dead)
(All of them are rule engine - I guess they implement the Rete algo or some variant but no time to check ATM).
Also: "production" is probably false since all of them are dead (or were, last time I checked - I'd be happy to be proven wrong).
What we liked about it was the ability to contextualize events by keeping a history and relationship between objects and events that we could reference as part of our rules. Particularly when we get an event storm and putting more signal into situational awareness when there is a lot of noise.
It's a little strange, but very flexible. I'd like to try adapting it to evaluate rules specified using annotated Kotlin.
Sadly, it is no longer maintained.
Self-plug: my interview with its original author. https://thesearch.space/episodes/2-ryan-brush-on-retaking-ru...
For me, the "It's just Clojure" part is a drawback, not only for me personally but when I think about the kind of audiences that I have traditionally wanted to author rules, between a real, lisp-y, dynamically-typed, programming language and asking folks to write in the Drools DSLs, I'll take my chances with the DSLs
The rule structures themself have a data structure representation that is independent of the DSL. You can have other DSL's implemented that target this structure. Again though, it certainly is easiest to do with Clojure. This was touched on in this post https://www.toomuchcode.org/blog/2015/11/14/insta-declarativ...
I don't have any affiliation with them, it was considered for a project I worked on in 2005.