dobrynya / crossbank

Just a sample program to demonstrate architecturing modules as web-services

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Crossbank Hypothetical System

Prerequisites:
1. JDK 1.8
2. Internet connection to download dependencies
3. [optional] Docker should be installed if you would like to try running modules in separate containers

Build instructions:
1. Project's build system is Gradle. All required dependencies will be downloaded automatically.
   To build the sources please run as follows
   ./gradlew build

2. After building succeeded check directories and find built artifacts
   accounts/build/libs/accounts-0.1.jar
   front/build/libs/transactions-0.1.jar
   front/build/libs/front-0.1.jar

3. To run the system all the built components should be started.

   java -jar accounts-0.1.jar [--server.port=8444]
   Started microservice listens https/8444. The port can be customized with an optional parameter

   java -jar transactions-0.1.jar [--server.port=8445]
   Started microservice listens https/8445. The port can be customized with an optional parameter

   java -jar front-0.1.jar [--account.service.url=https://localhost:8444/accounts] [--transaction.service.url=https://localhost:8445/transactions] [--server.port=8443]
   Started microservice listens https/8443. Dependencies are specified as optional URLs as well as the port.

4. A delivery pipeline offered in the design document includes packaging into a Docker image. This can be easily achieved as a part of standard CI life cycle.

   Buiding docker images can be started as follows
   gradlew buildDockerImage

   Further we can deploy a built image so many times as we need to support growing use. Arguments can be passed to a module by setting environment variables as follows

   docker run -d --name accounts -e server.port=8444 crossbank/accounts:0.1
   decker run -d --name transactions -e server.port=8445 crossbank/transactions:0.1
   docker run -d --link accounts:accounts --link transactions:transactions -e account.service.url=https://accounts:8444/accounts -e transaction.service.url=https://transactions:8445/transactions crossbank/front:0.1

5. Some parts of the design document have not been implemented due to time restrictions. Sorry.

Thank you for your time spent on evaluation of my implementation. Have a nice day.

Best regards,
Dmitry Dobrynin

About

Just a sample program to demonstrate architecturing modules as web-services

License:Apache License 2.0


Languages

Language:Java 98.3%Language:HTML 1.7%