Hi Ahmed,
Andy Macdonald is right - this is a big topic. As he says it is best to pass all the data the rules need and not too look up data during rule execution. That way you avoid tightly coupling the rules to the underlying data. When something goes wrong you can more easily work out what the problem is.
A good design solution for data enrichment, transformation, validation and error handling is to use the Mediator Pattern, which can decouple ruleset execution from ruleset invocation.


It is a big setup to build such a framework, but if you do right, once you have it it is very maintainable and reusable. You can read about it here: https://www.linkedin.com/pulse/building-better-rule-application-architecture-peter-warde/
------------------------------
Peter Warde
peterwarde@rulearchitect.com------------------------------
Original Message:
Sent: Tue September 16, 2025 04:26 AM
From: Andy Macdonald
Subject: ODM Data enrichment
This is a big topic with many possible answers. At the highest level it is recommended to pass all the data that you need into the rules for many good reasons - ease of deployment, simple ruleset testing, portability, performance etc. If you want domains of data values (enumerations) to perform lookups/transformations etc. then ODM has out of the box ways to manage such data in a dynamic way.
If you want to dynamically load some relevant data part way through the ruleset execution using your own Java code or a REST calls then this is also possible.
Check out this blog article for more ideas - Using Reference Data for Rule Authoring in IBM Operational Decision Manager
------------------------------
Andy Macdonald
Original Message:
Sent: Mon September 15, 2025 07:00 AM
From: Ahmed Hawas
Subject: ODM Data enrichment
I am new on IBM ODM and I have a question/advise, does ODM (application) is concerned with data enrichment while processing requests? to be clearer, when client call ODM service, it must provide all needed data to be enriched on the input data, or it is subject to be validation by ODM itself and if not provided ODM integrate with external system to get the needed information on runtime then continue processing.
------------------------------
Ahmed Hawas
------------------------------