I recently attended a Drools bootcamp to expand some of my understanding of what they offer and to get some hands on experience to experiment with the tools they offer.
I was actually quite impressed with what Drools as a whole offers considering the size of the team working on it.
One of the things I did not realize is that as part of the Drools “suite” of products, they have support for many of the things that are really related:
- Obviously, a rule engine (Drools Expert)
- A Workflow (or BPM) component (Drools Flow)
- An event processing (or CEP and temporal reasoning) component (Drools Fusion)
- And a Management (BRMS and BPMS) component (Drools Guvnor)
One of the things I like about this is that in one product, you can get the rules, workflow and event processing which not all products necessarily provide.
What was clear from the presentations I saw and the discussions is that the Drools team obviously is inspired by some commercial products, but they will usually take it to the next level. As an example I can think of the ILOG JRules support for event reasoning, but in the last couple of years, ILOG has stayed away from pushing that functionality, and they have not made it evolve. It has the potential of being very powerful stuff, but ILOG did nothing about it. Drools did.
I also like that Drools v5.1 will support the BPMN v2 standard for the workflow piece. Having a tool that makes it possible for workflow diagrams to be created using some of the latest standards is great.
Most of the things that is shown in the presentations or in the examples that can be downloaded is relatively technical, but if you are familiar with the Pattern matching algorithms that are behind most rule engines, the structure of the rule will be easy to understand (in other words, in JRules, if you can write IRL rules this will be easy).
The Drools team designed things in such a way that starting with one component and then trying to use other components will be relatively natural since the language constructs will be similar.
The documentation for installing, and running the examples is a bit weak. There are a lot of things required to run the examples (non technical users should abstain) but once things are setup, it is pretty easy to understand how to work with it.
I am not finished playing with drools to my liking yet, but as a first exposure to it, I am impressed.
If I have time I will post more on the topic in the near future.