OpenRules + Apache Spark: 6M Decisions per Second!

Our customers frequently select OpenRules for their decision management needs because of two important factors: 1) Ease of Use; and 2) Performance and Scalability. We have large customers who use OpenRules to create very complex decision models capable to handle large payloads – see an example with 17M records.

Recently we received a request to create a decision service capable to handle 1B records. Luckily this large corporation already uses Apache Spark for scalable computing as thousands of other companies, including 80% of the Fortune 500.

Within a few days, our team built a POC that put an OpenRules-based decision service inside an Apache Spark application. The performance results were really impressive: the total execution time for 1 billion records was under 7 minutes averaging 6 million decisions per second! Read more in the new manual “OpenRules-Spark Integration“.

When we converted a POC into a real decision service that handles more than 30,000 complex rules, we received the following execution results:

Java API for Decision Service Invocation

OpenRules Decision Manager deploys decision models as cloud-based decision services such as AWS Lambda with “one-click“. In this post I will explain how to invoke deployed OpenRules services from any Java application. There are at least 3 options:

  • Using the standard Java HttpURLConnection
  • Using DecisionServiceClient API
  • Using automatically generated API

You can try to run all three options using the sample decision project “VacationDaysLambda” included in the standard OpenRules installation. Continue reading

Rules-based Service Orchestration

OpenRules provides business users with abilities to build and deploy operational decision microservices. Now we empowered business users with an ability to assemble new decision services by orchestrating existing decision services independently of how they were built and deployed. The service orchestration logic is a business logic too, so it’s only natural to apply the decision modeling approach to orchestration. In this post I will explain how to orchestrate different services by creating a special orchestration decision model that describes under which conditions such services should be invoked and how to react to their execution results.

Continue reading

Stateful Loan Approval Process with AWS Lambda+EventBridge+SNS+SQS

At DecisionCAMP-2020 we had a lot of discussions about the orchestration of the decision services and how to invoke different decision services when states of the business objects change over time. One of the most popular orchestration technique is a Pub/Sub architecture with State machines. The Challenge “Dynamic Loan Approval” is an example of perpetually running decision-making applications which should be able to learn from already executed transactions and evaluate new facts as they become available. This post describes how we implemented this application utilizing OpenRules-based GUI connected to AWS Lambda, EventBridge, SNS, and SQS. Continue reading

Incorporating Optimization Engines in Business Decision Models

On June 30 I will present “Developing Decision Optimization Microservices for Real-World Decision-Making Applications” at DecisionCAMP-2020. Preparing my presentation, I thought about the major points I want to make. Of course, first of all, I want to demonstrate how to develop optimization services, but I also want to stress how the proposed approach helps to bring already great optimization tools into the everyday reality of business application development. Continue reading

Building a Live Worker Scheduler

There are already several good responses to the DMCommunity’s April-2020 Challenge “Doctor Planning”. Below I am describing how I tried to use this challenge to create a complete decision optimization service. I ended up with a working Worker Scheduler that shows a solution for this particular challenge in Fig. 1 (click to open):

Continue reading

Deploying Decision Optimization Models as AWS Lambda Microservices

OpenRules offers two open source products to support an integrated use of “Business Decision Modeling with Rule Engines and CP/LP Solvers“:

In this post I will describe how you can deploy decision optimization models as AWS Decision Microservices without programming or complex configuration. Continue reading

Immediate Assistance with Your Decision Services

In these uncertain times, to do our part we want to help US businesses, especially health organizations to quickly make important operational decisions. OpenRules offers immediate assistance in creation and deployment of your decisions services on-cloud or on-premise.

  • If you need a quick implementation of optimization decision services, we will help you to define and resolve your problem with the freely available Java Solver.
  • If you need to quickly create a rules-based decision service and deploy it to AWS cloud, we will give you 3 months free access to our SaaS Rule Engine.

Contact us at support@openrules.com and we will setup a call to discuss how we can be in help. As the CTO at OpenRules, I’d allocate my personal time to help you with your urgent decision automation problems for free – email me directly at jacobfeldman@openrules.com

Deploying Business Decision Models with OpenRules Decision Manager 8.1.1

OpenRules Decision Manager takes an Excel-based business decision model and converts it into highly efficient Java code. When you make changes to the business model, the code will be automatically re-generated, so we do not expect you to even look at this code.  The authors of business decision models will always maintain their original models using mainly Excel.

OpenRules Decision Manager offers several integration and deployment facilities for converting your business decision models to operational decision services on-premise or on-cloud.  We want you to be able to go through the deployment process without programming or complex configuration. This process should be easily repeatable as you will need to do it again and again when you modify your original business decision models. So, we tried to simplify the deployment process as much as possible. As our customers started to explore different deployment options, we plan to post several articles that describe these options in more details using the standard examples included into the OpenRules Decision Manager 8.1.1 installation.