
Monolithic Decision Model vs Orchestrated Decision Microservices

When OpenRules customers build real world decision support applications, their Rule Repositories become much more complex than in simple decision models. To remain maintainable and extendable they require a more complex decision modeling approach.
There are two implementation approaches:
- Large Monolithic Decision Models
- Orchestrated Decision Microservices
Usually you start with one decision model that works fine initially. When/if they notice that your Decision Diagram becomes too large to fit one page it is an apparent indicator that it is time to switch from one large monolithic decision model to a more sophisticated organization. Instead of one decision model/service placed in one decision project you need to consider creating multiple loosely coupled decision microservices that can be used to assemble larger decision services. You actually may create a set (a library) of decision models/services with each model executing only a certain domain-specific business function. Like in LEGO you construct large objects (vehicles, buildings, etc.) from smaller interlocking parts, you should be able to construct large decision services out of small decision microservices which can be reused to build other decision services.
Orchestrate Decision Models
The general architectural schema of a domain-specific library of decision microservices is shown on the above schema. It includes multiple decision models that automate smaller business goals and are being tested as stand-alone apps and deployed as loosely-coupled decision services. It also includes a special Orchestration Decision Model that describes how to orchestrate other decision services. The orchestration logic in most cases is also business logic and OpenRules provides powerful while intuitive capabilities for doing that.
Customize Decision Models
Sometimes decision microservices require the creation of domain-specific decision tables and even supporting Java libraries that simplify your decision modeling efforts. To do that, you can use OpenRules custom templates and other means described here.
Example of Complex Domain-Specific Decision Microservices
OpenRules provides a sample of such a domain-specific library of decision services for one popular domain “Loan Origination“.
