IDExcel provides solutions for the Asset-Based Lending (ABL) industry, and helps them automate the profiling and risk analysis for credit managers against assets like accounts receivable invoices.
Their codebase had been optimized prematurely into microservices without a clear separation. This resulted in domain objects being equally distributed between three microservices that were distinct in terms of the UI functionality, but shared a lot of models.
Our consultants were brought onboard to assist their team in improving the performance. After our initial analysis, we found that it would be better to transform the app into a monolith.
The team had used ‘Her’ (an Object Relational Mapper) to use an ActiveModel like API that could engage with the different microservices. We refactored the codebase to bring the models together as a Rails engine to the main application and rewrote the ‘Her’ model calls to directly use the underlying database tables through ActiveRecord.
This eliminated a whole class of problems with N+1s and drastically improved the performance of the application across the board. We assisted the team in migrating the database as well and transformed the nearly unusable parts of the application to some of the fastest parts of the application.