We use spring 4.3 and spring boot version 1.5 in our java based web application. For (product) analytics purposes we want to read the metadata of our product which is persisted in an RDBMS store (Oracle). Our application uses spring framework to define services that access the database through hibernate (jpa). These services add business logic to the data and return the response to the UI layer.
For analytics purposes we want to read the product metadata which involves mashing up calls to various spring based services. The constraints for coming up with a solution are
- We don't want to add this logic inside the application to avoid any code changes to the application. It will bind us to the application release cycle and client upgrades which may make us wait for 2-3 months for each metric. We want a quick way to fetch the metadata from outside the application.
- Defining REST based api's for these spring services is also not an option. It has the same cons as #1. Additionally it would add time to implement them.
- The analytics application needs to fetch this metadata from multiple application deployments(for different customers) which are on different software versions.
- We cannot connect directly to the database since we want the results after the business logic is applied by the service layer in java.
What are the possible ways to pull out analytics metrics give the above constraints?