Skip to content

This is a simulation of basic features of a Finance System. This Architecture has all the feature which should be available in a Cloud Native Applications

Notifications You must be signed in to change notification settings

bhanuchaddha/Finance-System

Repository files navigation

Finance System

This is a simulation of basic features of a Finance System. This Architecture has all the feature which should be available in a Cloud Native, Distributed architecture.

Functionalities

  1. Become Customer
  2. Open Account
  3. Send money to another customer
  4. Take loan

Functional Road Map

  • Customer Service - Done
  • Account Service - Done
  • Payment Service - Done
  • Messaging Layer - Done
  1. Create Maven module for different service - DONE
  2. Create Customer Service - DONE
  3. Create Account Service - DONE
  4. Create Payment Service - DONE
  5. Payment fail if messaging layer is not available
  6. If accounts is not available payments events should be cached and replayed when account is available
  7. Loan Service

Technical Features

Technical Road Map

  1. Rest input Validations
  2. Logging
  3. Tracing
  4. Dockerize each service
  5. Db and Redis in its own container
  6. Docker compose
  7. Kubernets
  8. Authentication
  9. Jwt token
  10. Casandra
  11. Deploy the services on Azure
  12. Implement Circuit breaker
  13. Error Handling
  14. Integration Adapter, Configuration
  15. Use Flyway

Cloud Native Features

  • Service Discovery
  • Load Balancing
  • Configuration Management
  • Data and state management
  • Log Aggregation
  • Distributed Tracing - Zipkin
  • Fault and Latency tolerance - Circuit Breaker, Hystrix
  • Edge Service
  • Auto Scaling
  • Feature Toggle - ff4j, togglz
  • Health Check - Spring boot actuator
  • Monitoring Dashboard

Try it

Currently services can either be run standalone or as docker containers

Startup sequence

  1. config-server
  2. messaging-layer
  3. account
  4. customer
  5. payment

Build All docker files

mvn clean install -Ddocker-build

Run all the docker images

  1. docker run config-server -p8085:8085
  2. docker run messaging-layer -p8085:6379
  3. docker run accounts -p8085:8081
  4. docker run customer -p8085:8083
  5. docker run payment -p8085:8082

Test API

https://documenter.getpostman.com/view/3772012/SVSKKnyZ?version=latest

Application Monitoring

Application Monitoring for this Finance System is done using Prometheus and Grafana. Different metrics from all the service is exposed and periodically scraped by Prometheus. Grafana is used to visualize these metrics. More details can be found at Application Monitoring Monitoring Dashboard

Inspiration

About

This is a simulation of basic features of a Finance System. This Architecture has all the feature which should be available in a Cloud Native Applications

Resources

Stars

Watchers

Forks

Packages

No packages published