[erlang-questions] Erlang and Rules Engines / Production Systems

Josh Adams josh.rubyist@REDACTED
Wed Jul 15 22:13:52 CEST 2015


Hi all,

I'm in need of making a recommendation regarding a Business Rules Engine
and am evaluating various open source and commercial projects for a
customer.  In the meantime, given the nature of this particular need, I'm
realizing that it's possible I could build a DSL for generating an AST and
pattern matching against it.

I'm operating on the assumption that there are potentially 10s of thousands
of rules in the system at scale, rather than hundreds or millions.  My
personal goals are to be able to sustainably handle a decent amount of
traffic via a webservice that can resolve all of these rules for a given
input in around 2ms.  This is not a hard requirement, but it is the
performance that the system needs.  10s of ms would be acceptable.  100s
would be out of the question.

I've not got anything more than tangential / play-style experience with any
BREs.  At present I am evaluating Drools, which is Java-based and uses the
Rete algorithm [1].  I am not yet sure whether it will meet my performance
"requirements".

On the Erlang front, I've seen at least ERESEYE[2]/sereseye[3] which are
RETE+CLIPS and RETE-based versions.  I've not dug into them yet at all.

I was curious if anyone on the list has experience with this in Erlang and
had any pointers or real-life anecdotes regarding building such a system.
It needn't be actually RETE-based, and in fact I would expect the newer
algorithms to provide better performance.  Anyone have anything to share
with someone furiously filling their mind with this stuff at present?

Thanks in advance,

-Josh Adams

[1] Apparently actually something called RETE-OO -
http://ieeexplore.ieee.org/xpl/login.jsp?reload=true&tp=&arnumber=5551128&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5551128
[2]
https://www.erlang-solutions.com/sites/default/files/trimedia/eresye_0.pdf
[3] https://github.com/afiniate/seresye
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150715/b55af44b/attachment.htm>


More information about the erlang-questions mailing list