Cosmic Module

O

Qubits of DPK

March 23, 2026

Core Open Source

What This Module Is (Big Picture)

The provider module is the main runtime application of Apache Fineract.
All other modules define domain logic and services, but this module:
  • exposes REST APIs
  • connects modules together
  • manages authentication
  • processes commands
  • runs the Spring Boot application
If Apache Fineract were a building:
  • all other modules are departments
  • fineract-provider is the main entrance and control center
Every request from the outside world enters the system through this module.

Layman Example

When a user performs an action in the system, such as:
Create Loan
Deposit Money
Register Client
The request goes through the provider module first.
Example flow
User clicks “Create Loan”
HTTP request sent to server
Provider module receives request
Provider module calls Loan module
Loan created in system

Where the Code Lives

The provider module integrates all other modules.

Key Package

org.apache.fineract.infrastructure
Responsibilities include:
  • exposing REST APIs
  • routing requests to services
  • managing security and authentication
  • coordinating module interactions

Main Application Entry Point

The entire system starts from a Spring Boot application class.
Path
fineract-provider/src/main/java/org/apache/fineract/FineractApplication.java

Example Application Bootstrapping Code

plain text
QUBITS OF DPK
1@SpringBootApplication
2public class FineractApplication {
3
4    public static void main(String[] args) {
5        SpringApplication.run(FineractApplication.class, args);
6    }
7}
This class starts the entire Fineract application.

REST API Controllers

All API endpoints are exposed through API resource classes.
Examples include:
These controllers handle incoming HTTP requests.

Example API Endpoint

Example endpoint in the loan module:
plain text
QUBITS OF DPK
1POST /v1/loans
Handled by
LoansApiResource
The provider module routes this request to the appropriate service.

Command Processing Architecture

One of the most important systems in Fineract is the Command Processing Framework.
Instead of directly executing operations, the system processes commands.
Example commands:
CreateClient
CreateLoan
ApproveLoan
DisburseLoan
Each command is handled by a CommandHandler.

Example Command Handling Flow

java
QUBITS OF DPK
1API Request
2POST /v1/loans
34LoansApiResource
56CommandProcessingService
78CreateLoanCommandHandler
910LoanWritePlatformService
1112Database
This architecture ensures:
  • consistent request handling
  • auditability
  • extensibility

Security and Authentication

The provider module also handles:
  • user authentication
  • authorization
  • role-based access control
  • integration with two-factor authentication
Example authentication flow
java
QUBITS OF DPK
1User Login
23Authentication Service
45Password validation
67Two-factor verification
89User session created

Integration with Other Modules

The provider module orchestrates operations across modules.
Example: Loan repayment
java
QUBITS OF DPK
1User makes repayment
23LoansApiResource
45Loan Service
67Accounting Module
89SMS Module
1011Reporting Module
Multiple modules cooperate to complete a single operation.

API Versioning

Fineract APIs use versioned endpoints.
Example
java
QUBITS OF DPK
1/v1/clients
2/v1/loans
3/v1/savingsaccounts
This allows future API changes without breaking existing integrations.

Repository Layer Integration

The provider module uses repositories from other modules to persist data.
Examples

Exceptions

The provider module handles system-wide exceptions.
Examples include:
These ensure consistent error responses.

How It All Connects (Full Flow)

Example: Creating a loan
java
QUBITS OF DPK
1Client Application
2POST /v1/loans
34LoansApiResource
56CommandProcessingService
78CreateLoanCommandHandler
910LoanWritePlatformService
1112LoanRepository
1314Database
The provider module coordinates this entire flow.

Why This Module Matters

The provider module is the central orchestration layer of Apache Fineract.
It:
  • exposes all system APIs
  • connects modules together
  • manages security
  • processes commands
  • starts the application runtime
Without it, the system’s modules would exist but would not be accessible as a running application.

One-Sentence Summary

fineract-provider is the main runtime module that exposes APIs, orchestrates services across modules, and runs the Apache Fineract application.