Trading Office is reference implementation of microservices architecture, based on Spring Boot, Heroku, RabbitMQ, MongoDB and Spring Cloud Netflix components.
It's modeling part of post trade processing, mainly focused on receiving Fixml message and preparing confirmation for it.
- set of applications simulating simple flow in post trade part of trade lifecycle.
- it's focused on generating confirmation based on received allocation report (FIXML)
- Running locally
- Allocation Message Receiver
- Allocation Enricher
- Confirmation Sender
- Market Data Service
- Confirmation Service
- Counterparty Service
- Eureka Server
- API Gateway
- end to end tests written in spock
- it runs against deployed applications (Heroku)
- it covers 4 cases, 2 for PROD and 2 for STAGING. Those 2 cases are: SWIFT and EMAIL confirmations
- initially, developer push his changes to GitHub
- in next stage, GitHub notifies Travis CI about changes
- Travis CI runs whole continuous integration flow, running compilation, tests and generating reports
- static code analysis report is sent to SonarQube
- coverage report is sent to Codecov
- application is deployed into Heroku Staging machine
- administrator once he is happy with quality of staging application, he promotes it to production
=========
- Heroku (PaaS)
- Heroku Add-ons (monitoring - new relic)
- RabbitMQ (CloudAMQP hosted on heroku)
- SonarQube (hosted on OpenShift) - https://sonar-nprogramming.rhcloud.com
- TravisCI - https://travis-ci.org/spolnik/trading-office
- Swift - http://www.iso15022.org/uhb/uhb/finmt518.htm
- FIXML - http://btobits.com/fixopaedia/fixdic50-sp2-ep/index.html (Allocation Report message)
- Trade Lifecycle - http://thisweekfinance.blogspot.com/2011/10/trade-life-cycle.html
- to run integration tests, you have to have both tools up and running - rabbitmq & mongodb
- Running locally
- Travis Builds
- central log management - managed ELK on sematext