Giter Club home page Giter Club logo

online-bank's Introduction

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

  1. API-Gateway
  2. Network Load Balancer
  3. Custom Kubernetes Cluster
  4. SQS
  5. Lambda
  6. Cloud Watch
  7. MongoDB

  1. API-Gateway is the entry point of the system for reach all services. It is responsible for path routing and securing REST.
  2. Network Load Balancer is responsible for handling traffic.
  3. Kubernetes cluster contains 5 pods with 5 different microservices.
    -Transactions service
    -Transfer service
    -Login/Register service
    -Search Transaction service
    -Accounts service
  4. Transaction API-Gateway is responsible for securing the transfer and transaction operation.
  5. Simple Queue Service is responsible for triggering lambda and maintaing the order of transaction.
  6. 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.

Architecture Diagram

Architecture Diagram

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.