I am trying to establish a global foundation/enterprise layer for my organization where we can keep all reusable components like function, integration-related rules, common security artifacts so that every application can use it.
I just want to ensure that the path I take does not lead to heavy maintenance and the same time don't want to restrict all applications team to use the latest code even though they might not require it. Each application within the organization are running on its own separate DB so we can achieve our objective in below 2 ways:--
1) By categorizing reusable components for each category and adding these components to an application.
2) Creating a separate application for Reusable components and can be used as "Built on Application" for other applications.
I understand Pega suggests using approach #1 as the component rule does not have any work pool and case type defined but I want to understand the difference between option 1 & 2. From the Maintenance/implementation perspective, what is the main benefit I am getting if I us option 1 over option 2? or why Option 1 is considered as best practice for maintaining reusable components?
Any other suggestion to achieve my goal would be highly appreciated.
Option 1 is best option for maintenance/implementation point of view.If there is any chances/enhancements are required, changes can be done in main components which will be cascaded to all places where this component is used. It is easy for debugging also if there is any bugs in systems as all are individual components.
Thanks for the reply. I might be wrong but just wondering that the same level of maintenance could be done if we go with option 2 as well because the separate application is only for reusable components.