21
votes

I'm looking for a good rule engine.

I've seen it exists two good projects : JBPM and Drools.

I don't really understand differences between the two and I don't know what is the ideal tool to use.

Please could you provide me more information and your experience with one or other and what do you think is the best to use to manage business rules.

4

4 Answers

25
votes

jBPM is not a rule engine, it's a workflow engine. Drools is a rule engine. So Drools is what you're looking for.

Drools and jBPM are companion projects: they integrate really nicely if you need workflows with rules.

3
votes

Drools is a Rete rules engine that does forward and back induction. You can use it in a small setting for local decisions that only require a handful of rules OR something as large as an underwriting decision engine in insurance.

jBPM is an enterprise singleton that helps you to wire together interactions between humans and services into a state machine that fulfills a well-defined, complex business process. Think of the Mediator pattern in GoF.

I can see where jBPM might use a Rete rules engine to help with complex decisions in a business flow. There's nothing to stop me from embedding Drools in jBPM.

I would say they are complimentary, not an either/or choice.

1
votes

jBPM is a workflow engine whereas Drools is a rule engine. Drools Flow will be merged in the project we call jBPM 5.

0
votes

It is not correct to say that Drools should only be used for a handful of rules. It is able to scale really well, at least at the time of this comment (version 7.5/6)

The whole point of drools and any other rules engine is the implementation of algorithms that optimize the execution of rules. Manageability of rules is proportional (if such a thing exists) to the design of the rules.

As the others have said, JBPM is not a rules engine but a workflow system that interops with drools naturally.