Try Mambu itself
The first question is, do you really have to build an extra reporting system? Although it has limitations, Mambu indeed provides some built-in functionalities for clients to set up reports. If those functionalities already meet your requirement, using them will let you build the reporting system fast and at almost no extra cost.
Custom View / Reports
If you just need a data table with some field combinations within a single business entity like Account or Client, then the built-in Custom View will meet your requirements. Create a custom view by setting the entity type, filter criteria, and the fields you need, and you will get your real-time report in your menu. Mambu also provides some built-in report types, you can find them under ’Reporting’.
Custom report based on Jasper
If the report you require is not included in the built-in reports, Mambu provides customized reports. You will need to use Jaspersoft Studio to build a report template and upload it to Mambu, then Mambu will be able to generate real-time reports based on that template.
The customized report templates provide much more flexibility, but there are still limitations. First, the report template can only use data from the Mambu database, which means you cannot aggregate outer data within those reports. Second, they are exported into PDF/XLSX files, which is human readable but tricky to parse for other systems.
To circumvent these limitations, it’s best to export data from Mambu for fully-customized usage.
Gathering data from Mambu API
The most straightforward way is to export data via Mambu API. Specifically, to build a reporting system which will fetch required data from Mambu API and generate a report as required. However, this approach is only feasible when your report is based on small-scale data. That is caused by when you are trying to gather data widely, the number of API calls will grow by the data scale exponentially. Let’s say we are generating a report to summarize the total transactions amount for each group, the number of API calls would be:
Num of Groups * Avg Num of Clients in a Group
That will significantly increase the time consumption of report generation. So if your report is going to aggregate and summarize data from a big scale of data from Mambu, you might need a data warehouse to speed up your data collection and boost your data querying.
Build a replica in data warehouse
Data warehouse provides you the ability to store full data from Mambu, and to fetch or summarize that data with high performance. Replicating Mambu Data into a data warehouse follows the Read-Write-Separation pattern and still uses Mambu as the source-of-truth, and the Data warehouse provides you the database API so that you can use queries like SQL to fetch data as you want in a high speed. Some cloud data warehouses like RedShift are column-oriented, which provide more efficiency when summarizing data, and are naturally friendly to reporting.
To build a data warehouse for Mambu, the core decision you will need to make is how to replicate the data from Mambu to your data warehouse. Note that for all of those approaches, it will take time to synchronize data from Mambu to your data warehouse. That means your report cannot be in real-time, and is more suited to daily or monthly reports.
Importing from Mambu data dump
Mambu provides the ability to dump its Database, so that you can build a system to regularly dump data from Mambu and import them into your data warehouse. This approach provides you full control of how your data is transformed and imported into your data warehouse, meanwhile, it means the cost of development and infrastructure would be increased.
Using ETL Tools like Singer
As Mambu is an outstanding SaaS, there are some existing open source ETL (extract, transform, load) tools like Singer support to extract data from Mambu. Compared to extracting data by developing a new service using the Mambu database dump, developing a service based on an existing ETL tool to extract data from Mambu will tremendously decrease the cost of development, but remember the cost of infrastructure and maintenance is still there.
Using Cloud ETL Services like Stitch
There are also some cloud hosted ETL services like Stitch. Most of them are code-free, which means you can configure / operate from a graphical user interface. They are also hosted by the service provider, so that you will be free from the maintenance. However, the approach of data extracted and the destinations of data is already defined by the service provider. So if those services do not support your data warehouse, this approach may not suit you.
To build reporting capabilities for Mambu, try the following solutions:
Use Mambu’s built-in reporting functionalities, if they already meet your requirements. E.g. you only need a basic Profit & Loss monthly report.
Collect and aggregate data directly from Mambu API when the data scale is small for a single report. E.g. you are building reports for single clients.
For more flexibility and customization, build a data replica from Mambu into a data warehouse, as the source of reporting.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.