FinStack Deployment & Architecture
A comprehensive guide to FinStack's infrastructure and deployment strategy
About FinStack
FinStack is a no-code platform to digitise credit. FinStack allows your team to turn ideas into working products at the click of a few buttons. FinStack is already trusted by multiple Regulated Entities and Enterprises - who are now lending digitally through multiple channels and multiple branches across geographies without a single engineer on their team!
Key Capabilities
- Plug in any API from the India FinTech universe at the click of a button (or any RESTful API)
- Create onboarding journeys for borrowers which can be self-serve, assisted or both
- Configure complex credit policies along with complex workflows
- Customise and build a Loan / Lead Origination System for your entire team
- Configure Role Based Access Control (RBAC) for every stakeholder
- Host entirely on your cloud (platform as well as data)
System Architecture
FinStack is "plug-n-play" even on an infrastructure level. The application components of the platform are made using open source and cloud native technologies which are deployed as independent microservices using docker containers. This gives flexibility to scale horizontally while also providing flexibility to replace some open source components like file servers, mongo and postgres with their enterprise or managed variants.
The entire solution, borrower data and third party API calls are sourced at the lender's cloud. This ensures that your credit policies, borrower data, user roles and process information never leaves your premise.

Key Components

PostgreSQL
Stores transactional and relational data (like RBAC and user roles). FinStack natively provides a docker hosted Postgres container which can be replaced by any Postgres database server (like Amazon RDS etc).

MongoDB
Using a non-relational database allows us to treat every borrwer as an entity, with a coupled state that is modified as they progress through the journey configured in our Journey Builder. In essence, our journey builder creates a state machine for every product created on FinStack. FinStack natively provides a docker hosted Mongo container which can be replaced by any Postgres database server (like Amazon RDS etc).

File Server
Every loan application needs a docket for audit - encompassing documents ranging from KYC, loan agreements and beyond. FinStack natively handles all documents and maintains them in a cloud native static server. Lenders may alternatively use a managed service like AWS S3 or a Document Management System.

Application Layer
The FinStack application layer is deployed through independently scalable microservices. This includes our no-code journey builder, API rails, fluentd (logging connector) to stream logs to a service like AWS Cloudwatch and a monitoring service which lets FinStack know if the application is erroring out to initiate pro-active support and track usage for billing. The application containers do not store any persistent data.

Nginx
FinStack uses Nginx web server as a reverse proxy and load balancer to route requests to the appropriate microservices. Optionally, we can also use a managed service like AWS ALB, GCP Load Balancer or Azure Load Balancer.
Deployment Strategy
FinStack's microservices are deployed as docker containers allowing multiple options for orchestrating the same. Lenders can use Docker Swarm, Kubernetes, Mesos or used managed service like AWS Fargate, Azure Service Fabric etc. The instance or VM with the application containers and Nginx acts as the master node in the cluster.
The images for the container are also stored in the lender's container registry of choice. This allows the lender to have complete control and visibility of the updates that are pushed by FinStack.

Minimum Specifications for the bare metal VM
The entire platform is completely cloud agnostic and cloud native. The platform can be hosted on a bare metal VM (minimum 2), or across multiple VMs using container orchestration tools (like Mesos, Kubernetes or cloud services like ECS). A separate VPC must be provisioned for the System to keep it isolated.
Specification | Requirement |
---|---|
Architecture | x86 / ARM 64 server |
Clock speed | 2.4 GHz |
v-CPUs | 8 |
RAM | 16GB |
Network bandwidth | 8Gbps |
SSD / NVMe storage | 64 GB |
Key Deployment Considerations
- The application containers are never stored on the same instance as the data storage services (Postgres, Mongo and File Server).
- Updates, upgrades, patches and bug fixes from FinStack shall be pushed to the lender's container registry in the form of docker images with unique tags.
- FinStack shall be granted terminal access for the purpose of deployments and investigation for errors (debugging / bug fixing) to the application VM only (for data blindness).
- Access to the postgres, mongo and / or file server will only be granted after the same has been approved by the lender's SPOC through email.
- FinStack has a record of successful VAPT audits while seamlessly accommodating the lender's existing infrastructure.