Banking System Architecture:
Introduction
Any banking application should be highly secured, scalable, fault tolerant, fast recovery, and consistent databases.
These features could be achieved by designing good architecture. For the purpose of this project, the bank architecture is deployed on AWS cloud.
Resource Components
- API-Gateway
- Network Load Balancer
- Custom Kubernetes Cluster
- SQS
- Lambda
- Cloud Watch
- MongoDB
- API-Gateway is the entry point of the system for reach all services. It is responsible for path routing and securing REST.
- Network Load Balancer is responsible for handling traffic.
- Kubernetes cluster contains 5 pods with 5 different microservices.
-Transactions service
-Transfer service
-Login/Register service
-Search Transaction service
-Accounts service - Transaction API-Gateway is responsible for securing the transfer and transaction operation.
- Simple Queue Service is responsible for triggering lambda and maintaing the order of transaction.
- Lambda Function is responsible for performing transaction related operations on MongoDB. This is the single point for performing any write operation to DB in order to make in consistent.
In order to achieve consistency using NoSQL, the architecture uses combination of SQS and lambda to perform any write operations on MongoDB. MongoDB is 40% less expensive than SQL Database, so it is an attempt to use NoSQL DB to achieve consistentcy. All the write operations are need to be performed only by the lambda.
We are using microservice architecture where each service is deployed on different pods. This makes the system fault tolerant and scalable. Failure of one service will not affect the other services. Moreover, all the services can be written in different APIs.We used Nodejs for Search Transactions, Login, and Accounts API and Go for Transactions, and Transfer API.
To handle large user traffic, we used Network load balancer. API-Gateway is used for securing routes.
API Reference doc - https://documenter.getpostman.com/view/2631439/SWE3dfYt
Sprint task sheet and burndown chart - https://docs.google.com/spreadsheets/d/1wnaVrKHD61rhG7FJam9kuqD7ZZgLx6cDOj_zbCE6oBY/edit?usp=sharing