Skip navigation

Basically, a rule engine will provide more agility to your project :

  • rules are declarative and more expressive than nested IF/THEN/ELSE of your favorite programming language.
  • rules are more maintainable : adding/removing or modifying a rule is very easy and does not require to change the overall ruleset.
  • rule engines are powerful : rule languages provide powerful constructs and features that cannot be expressed easily in a normal programming language.
  • rule engines are very efficient : even if they do not have native code performance, rule engines provide optimizations so that performances are usually not an issue.

So, as a general rule, a rule engine is a very good way to add decision logic automation to your project if :

  • rules will change ‘often’ (more often than normal patch releases of your application).
  • you will have to deal with a lot of rules.
  • you can afford a rule engine specialist or a consultant in your dev-team.

In the contrary, I would not recommend to adopt rule engines you answer “no” to at least two of the items above.

  • rules will never change or change very rarely: hard coded decision logic could do the job.
  • you have very few rules : no need for a rule engine, you programming language should be enough.
  • You cannot afford a rule engine specialist : don’t risk to lose control over your project and avoid modules that no one can maintain.
Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.