Building the Inhouse Loan Management System

About Fineract

Apache Fineract is built around a multi-tenant, service-oriented, and tiered architecture, and can be deployed in a SaaS (Software as a Service) model or on-premises.

The foundation forms a robust but flexible data model which is ready-made for extensions and customizations. An API provides access to all basic functions grouped in modules.

Fineract Financial Service Engine

Fineract Financial Service Engine (simply “the Engine”) is a scalable and extensible framework written in Java, and licensed under the Apache License, version 2.0.

API Layer

The API Layer is built entirely as a RESTful Webservice, using JSON to transmit data, and utilizes standard HTTP Methods for interactions.

  • Resources
  • Every module is exposed via a URI (Unique Resource Identifier).
  • Access Control
  • Early exit if a consumer lacks authorization for a queried Resource.
  • Data marshaling
  • Any data transmitted to and from the API is de-/serialized using JSON.

Service Layer

The Service Layer provides module-specific business logic and rules, and role-based access control. Transaction awareness and data validity are encapsulated, and extension points are available to enhance built-in workflows.

Data Layer

The Data Layer provides module-specific access to data stores. Data integrity is reached by using the ACID principle and well-defined data relations. Write and read operations are encapsulated in different repositories to define a clean responsibility separation.

  • Database caching stores records on the database level and is useful for reporting, batch jobs, and low-level SQL queries.
  • 2nd Level caching stores data objects on the application level and keeps database turnarounds on a very low level allowing fast in-memory access of frequent data.


Default Architecture

The Engine’s architecture was designed with a focus on modern, scalable, and extensible technologies ready to run in the cloud. All components were selected based on their maturity, proven reliability, and cost-efficiency.

Our Architecture

You can add various capabilities to it to meet your business requirements and add various additional features you require. You can also use AWS Aurora instead of Mysql if you prefer to use enterprise DB. It’s based on multi-tenant architecture so DB scales very well with the increasing workload. Kubernetes can be used for horizontal scaling. Jenkins, ELK, and Grafana can be used for CI/CD, logging, and monitoring/alerting respectively.

Getting Started

You can refer to the GitHub link to clone the repository and set up your MVP of Inhouse LMS and gradually add additional capabilities required.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Shivam Agrawal

Shivam Agrawal

Hardcore polyglot coder and enthusiastic learner. Always looking out for opportunities to learn and develop new skills. (