This decoupling pattern places the business function into a separate module which is included in the project as a library. This library can be internal or external. The library includes a flow that decides on a certain question. The result is indicated by the two exits of the flow. As the domain is included in the parent module, the complete profile is shared.
Characteristics
Type | Score | Description | |
---|---|---|---|
Knowledge characteristics | User set or System set | System set | As the underlying module is included, the rule engine can do its work. |
Parameters or complex model | Complex Model | The entire function can be used as output. There are no clear input parameters defined. | |
Enhanced by Blueriq Functionality | This pattern is enhances by Blueriq functionality, as model validations, the Decision Requirements graph, dependencies and specifications keep working. | ||
Maintainability characteristics It should be possible to quickly make changes to business rules independent of other functionality. | Focus on Internal or External Use | Internal | This pattern purely covers internal use. The business function is included in a Blueriq library. |
Low Implementation complexity | Including a library is done quickly and easily. The complexity can however increase drastically in case that many libraries are used and stacked, or if many projects need updates from the same library. When many specializations are present, then the complexity is high. | ||
Internals invisible (encapsulation) | All internals are visible and increase the mental load of the business engineer. Mistakes may be made when elements are used which were not supposed to be used. | ||
Autonomous | The business rules are executed in the context of the main application. When the main application uses internals of the library, then making changes generates side effects. | ||
Highly Testable | The library can be tested on its own, either by unit tests in studio or with special test applications. When the application gets larger testing larger chunks of model can get difficult. | ||
Highly Reusable | Including libraries by hand can be time-consuming when the number of projects becomes large. The Blueriq Control Center can help with many projects. | ||
Out of the Box | This is possible without custom coding. | ||
Deployment characteristics | Part of Application or Separate Deployment (=deployment) | Part of Application | The library has to be imported into a project and becomes part of it. |