Component vs Application
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.