Technical Requirements and Implementation Plan

Technical Requirements and Implementation Plan

Domain-Driven Design & Event-Based Architecture plan.

Executive Summary & Architecture Topology

The VSLA (Self-Funded Group) module is implemented as a standalone Spring Boot application (vsla-service) that sits alongside a standard Apache Fineract deployment. Fineract Core is treated as an external financial ledger and account engine; it is not modified and is consumed exclusively through the official Apache Fineract Java REST API Client (fineract-client).

Topology

image-20260526-175000.png

 

image-20260526-174944.png

 

Key Principles

  • VSLA Service is the System of Record for all VSLA-specific domain logic: group parameters, meeting schedules, attendance, internal lending lifecycle, voting, share-out calculations, earnings allocation, and group-level accounting.

  • Fineract Core is the System of Record for: client registry, savings account balances, external loans (group ↔ bank/MFI), and institution-level GL postings.

  • All cross-system mutations are asynchronous and eventually consistent, using an Outbox + Inbox pattern over the Fineract REST API.

  • No shared database; loose coupling via REST only.

  • Trapdoor setting (vsla.group-type) is a deployment-time configuration in the VSLA service. When active, all group lifecycle and internal lending operations are owned by vsla-service; Fineract remains unaware of group semantics.