Description
francisguchie thanks for raising https://github.com/apache/fineract/pull/1262/files for FINERACT-1094, even though we cannot merge it due to licensing, it helps at least me to see it nicely isolated like that, e.g. for this discussion!
Seeing that, and subsequent FINERACT-1125, led me to wonder if an alternative future architecture approach here could be to have a 3rd-party, such as the Mifos Initiative, offer Pentaho integration for Fineract not anymore by forking Fineract and adding code to it (which is always a PITA to maintain, in the long run), but by building and releasing an entirely separate runnable binary artifact (WAR / JAR) for it... this could be very neat even from a runtime perspective - completely separate REST API, and (possibly "heavy"?) report generation?
One could even image breaking out running scheduler jobs separately from API serving. Ultimately, this could effectively be the start of breaking Fineract 1.x into a CN-like "microservices" deployment... but I'd envision that to, always, just be one option, a possible alternative - with the current WAR/JAR remaining as is, forever - but it would just "assemble modules" for the "monolithic deployment distribution". Anything along these ideas is further down the line, but starting with making this possible for reporting could be a pragmatic start.... let's focus on that only, in this issue.
This is more of a still somewhat vague idea at this stage. The next step would consist of spending more time understanding the details of how Fineract's ReportingProcessService is designed... I personally don't know that much about it, but looking at PR #1162, one can kind of gather that this PentahoReportingProcessServiceImpl needs to implement ReportingProcessService? What would it take for the front-end to be able to call another service (or Fineract to HTTP redirect reports to an external service...), and then for such an external service to be able to... do exactly what, actually - what's the lowest common denominator integration touch point, here? From an only very quick glance at the code, it looks like we're basically "passing through" JDBC connection details? So... what one would need is to be able to build an external Fineract (non-CN) service that can access the same DB? Sharing a minimal amount of fineract.infrastructure.core code, as a library...
francisguchie, ptuomola, awasum, xurror, edcable FYI.
Attachments
Attachments
Issue Links
- is related to
-
FINERACT-1176 Failing reports generation has no HTTP response
- Open
-
FINERACT-1173 Error Message in case of missing reporting implementation is confusing
- Resolved
-
FINERACT-1175 Fix spm.repository / spm.domain JPA bug (?), and simplify appContext.xml
- Resolved
-
FINERACT-1177 Alt. distro? Spring Boot JAR is not great for "dropping in" Plugins
- Resolved
-
FINERACT-1174 Allow Spring to component-scan plugins in non org.apache.fineract packages
- Open
-
FINERACT-1171 Multi-module configuration for Gradle
- Resolved
-
FINERACT-1125 Integrate Alternative Reporting tool for Fineract 1.x without Apache License violations
- Closed
-
FINERACT-1094 Pentaho Reports are needed a number of MifosX users need them back
- Closed