In this article, we are going to take a little introduction to JBoss Drool. So, Basically, Java Drool is used to write Rule Engines.
A Rule Engine is a domain expert system that applies business rules to the given input and produces as per the matched rules among all the defined rules.
Drools is a Business Rule Management System Engine that is based on Java Rules API. It is very useful in creating complex applications where business logic keeps changing post-development.
For example, you may run a shopping website that provides discounts based on certain criteria. But these criteria may change in the future. In these cases, It would require a code change to update the business logic. However, You can use a rule engine like Drools to externalize the decision logic thus avoiding technical debt.
Why do we need to use it?
For understanding it, consider a scenario where a bank analyst is studying various factors like interest rates, applicant age, type of deposit, and deposit duration for calculating the interest rate.
If the above logic has been implemented in Java, then the following disadvantages would be there.
- Declarative set of instructions: It is a declarative language where each task is defined in some small steps that get executed based on some conditions.
- Single file for the rules: Each scenario’s business logic can be defined in a different .drl file, so that code becomes more readable.
- Loose Coupling: It provides loose coupling in our code.
How is the flow in JBoss Drool?
As per the above flow:
- Firstly we make a request to our controller and specify inputs.
- These inputs go into the Drool engine.
- Now, they take rules from .drl file, match a particular rule, and gives result according to that rule.
You can follow the below articles as a reference for learning more about drool.