Course Code: dmdd
Duration: 35 hours
Prerequisites:
  • Basic knowledge of Java
Course Outline:

DAY 1

Overview

• Why Rule Engine and when to use one
• Methods vs Rules
• Pattern matching algorithm
• MVEL vs Java
• Prerequisites and Installation
• Drools Architecture & modules
• Forward & backward chaining

Anatomy of a Rule: Structure, Attributes, Facts & Conditional Elements

• Clauses and Syntax
• Packages ,namespaces & Facts
• Salience
• Facts- Insert, Update, Modify and Set

Intro to Red Hat Decision Manager & Decision Central

• Installation
• Overview of components & features
• Writing rules & guided rules in RHDM
• Using test scenarios to test rules

Proof of Concept

• Implement a simple business rule on Decision Manager
• Implement guided rules using different rule attributes
• Use salience in guided rules for a business use case

DAY 2

Decision Tables

• Attributes of Decision tables and structure
• CSVs, XL Sheets Design guided rules in RHDM
• Design guided decision tables in RHDM
• Importing XL sheets and exporting Guided Decision Tables
• Testing decision tables using test scenarios

Business Rule Tasks

• Introduction to processes & tasks
• Rule flow groups
• Using rules in Business Processes

Rule Templates

• Rule templates
• Designing guided rule templates in RHDM

Proof of Concept

• Implement a use case using guided decision tables along with testing
• Implement Business Rule Tasks for a use case

DAY 3

Executing Rules in Eclipse

• Setting up Drools in Eclipse & Eclipse plugin set up
• Creating rule based projects
• Writing and testing rules on Eclipse
• Testing rules with JUnit

Kie Session

• What’s a Kie session?
• Stateful vs Stateless approach

DMN

• Introduction to FEEL language and rule expressions
• Modelling DMNs
• Developing a simple process Invoking already existing DMN component into another
• Testing DMNs through Redhat Decision Manager
• Executing DMN services( exposed APIs ) using postman.

Domain Specific Language

• Use of DSL in Drools
• Design rules using DSL

Proof of Concept

• Implement DSLs for a use case
• Implement a use case using DMNs

• Execute rules in Eclipse using Rules Run time

DAY 4

Rules: Diving deeper

• Grouping mechanisms for conflict resolution - Agenda Group, Activation Group, Rule Flow Group
• Lock-on-active vs No-loop
• Eval and Inline Eval
• Eval to check size of an Array List
• Retracting facts
• Querying rule engine
• Using Global
• Pass ArrayLists to Rules

Interfaces & Listeners

• Interfaces & Listeners
• KieRuntime Interface
• Agenda Event Listener, Process Event Listener
• Property Change Support

Proof of Concept

• Test Lock-on-active with rules
• Implement selective rule firing using grouping mechanisms

DAY 5

Testing Rules through REST apis

• Using KIE Rest apis to test rules
• Using Rule Services Client

Drools + Spring Boot Integration

• Integrating Drools in a Spring boot application
• Exposing rules through a Rest api
• Deployment

Best Practices & Real World Implementation

• Storing rules
• End-to-end implementation of rules & designing rules
• Deployment
• Performance issues
• Asynchronous vs Synchronous design

Proof of Concept

• Implement a real world case study using all the concepts you have learn so far