there are a lot of examples how to get data from other systems to MDS. But i am still missing working examples for the opposite. We want to implement MDS to be our single point of entering and modyfing reference data. But these data need to get copied to
other production systems. Each time there is a change in MDS, this change needs to get to a subscribed system. For example - MDS has an entity Employee. When a new employee is entered, or existing one is modified, it needs to get to other systems. These
changes should be published almost real-time.
Does anybody have a working example how to achieve it? How to track changes in data in MDS and send these changes to other systems?
Based on your requirement of pubishing data for every change is nice but may lead to some issues like what if data is wrongly entered and it got published to sub systems/components. So not sure on your overall requirement but this is how i have handled
1.Make changes in MDS which can be structural change or any data CRUD operations.
2.If the data is correct it should satisfy all buisness rules and that version could be validated.(Once Validated we are sure that version data can be pushed to sub components).
3.Change the flag for this version (Flag can be created in MDS and can be associated to a version).
4.Once the flag is changed I will have trigger on table "tblModelVersion" which will be executed for every flag change and check if appropriate flag is changed then start the export flow.
5.Export flow may start with generation of subscription views by calling appropriate stored procedure and executing SSIS package/biztalk which can fetch this data from views and insert into sub systems.