As described in the previous article, we are facing a very challenging performance issue when solving 100k row decision tables.

To view previous discussion, please click:

Solution 1: Rule Template + Xls

Solution 2: Precompile Spreadsheet Decision Table

In this article, I am going to change the mindset and change the decision table row data from rule to fact. Again I am using drools as my framework.

Solution 3: Convert Row Data to Fact, not Rule

Solution 2(Precompile the rules) helps a lot when the decision table is 10k below row size. However when the row number comes to very big such as 100k, solution 2 ‘s improvement is…


As described in my previous article, we are handling a performance issue when solving 100k row decision tables.

Solution 2: Precompile the SpreadSheet Rule

Image for post
Image for post

Follow the vertical thinking of solution 1, I think we can improve the situation corresponding to the problems:

  1. Don’t dynamically load Excel data at runtime, let’s precompile it at build time
  2. Use drools spreadsheet decision table so that it can be “version controlled” by KIE workbench;

When drools using rule template + Excel to fire rules, what it actually doing under hood is:

  1. Using ExternalSpreadsheetCompiler to compile rule template and rule data( ie the Excel file) into drl(Drools rule language)
  2. Drools engine…


TLDR;

How to handle 100k decision table rows in Drools?

When handling large rows of decision tables, one of the pain points is performance. In this article, I prepared a prototype setup to a simple scenario to simulate the large decision table use case and provided three solutions to utilize drools ( a rules oriented application framwork). I would focus on the decision table rule execution performance.

For the sake of explanation of the core concept of problem solving, I prepared two decision tables 10k & 100k row data to simulate decision making procedure usage in rules application.

I provide 3…


Innovation never stopped in Java land. In this article, I am going to explore a new trend of Java Framework: “Build Time Boot” techniques, which make java applications slim and run faster.

If you searched the microservice framework, you will find a lot of options like: Spring Boot, Vertx, Quarkus, Micronaut, Helidon(those are all java), GoMicro(Go), Molecular(nodejs) etc.

Do you know why so many Java framework options?

Java is a 25 years old language, so the landscape and market definitely is much larger than other languages. …


In my previous blog, I described what happened when Domain-Driven Design met Deadline Driven Design. Software design is a complicated activity. Pushing the deadline doesn’t work in most cases; cutting the software design will never work.

Not existing no-design-software, it’s either Good or Bad

Let’s first explain “the two-person job” mentioned in my previous blog. A basic question first.

Who designed your software?

A, UX designer; B, Architect; C, BA; D, Developer;

If you choose A, I would point your attention to Steve Jobs’ Quotes

“Design is not just what it looks like and feels like. Design is how it works.”

If you choose B, I would argue…


When I asked my clients who know Domain Driven Design, less than 10% would nod their heads.

However when I asked who experienced Deadline Driven Design, almost all would laugh and feel connected.

Put the cart before the horse

Let me share an experience once I delivered DDD methodology to a customer.

BA(Business Analysis) Mr. T is the one I coached for adopting event storming and DDD methodology to analyse the requirement and do the design afterwards in Lab1. After a short break, we met again for a second project Lab2.“

We were standing in front of the following map which was completed by BA Mr…

Ryan Zhangcheng

Red Hat Senior Consultant. Focus on App Dev, DevOps, OpenShift technology.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store