Skip to content

Latest commit

 

History

History
144 lines (102 loc) · 5.49 KB

README.md

File metadata and controls

144 lines (102 loc) · 5.49 KB

GitHub Workflow Status GitHub release (latest by date) GitHub

image

Reactive Trader

Reactive Trader is a real-time FX trading platform designed to showcase reactive programming principles across the full application stack.

Originally written in WPF and .Net, and now in React/Redux, .Net and Node.js, we continue to evolve the platform to use the latest technologies.

Please see our Showcases page for a full list of the latest features.

image

Demo

Installation

With Docker
  1. Install Docker (from the Docker website)
  2. Fork and clone the ReactiveTraderCloud repo (see Contributing page)
  3. From the src folder run: docker-compose up
  4. Open a browser and navigate to http://localhost to see the application running
  5. To shutdown the application run: docker-compose down
With Docker and Kubernetes
  1. Follow the steps to run with Docker

  2. From the src directory run docker-compose build

  3. Set the environment variables:

    export DOCKER_USER=localuser
    export BUILD_VERSION=0.0.0
  4. Run the following command:

    docker stack deploy --orchestrator kubernetes --compose-file ./docker-compose.yml rtcstack
  5. To see your services and pods running, run:

    kubectl get services
    kubectl get pods
  6. Open a browser and navigate to http://localhost to see the application running

  7. To shutdown / remove stack, run: kubectl delete stack rtcstack

Without Docker (for development/debugging)
  1. Fork and clone the ReactiveTraderCloud repo (see Contributing page)

  2. Install dependencies & add them to your path:

  1. Enable RabbitMQ Web Stomp Pluggin

    rabbitmq-plugins enable rabbitmq_web_stomp
  2. Populate Event Store:

    cd src/server/dotNet
    dotnet run -p Adaptive.ReactiveTrader.Server.Launcher --populate-eventstore
  3. Start the .NET services:

    cd src/server/dotNet
    dotnet run -p Adaptive.ReactiveTrader.Server.Launcher all

    To run individual services, cd into their folder, and type dotnet run.

  4. (Optional) Start Node services by running npm run start:dev from their respective folders, e.g.:

    cd src/server/node/priceHistory
    npm install
    npm run start:dev
  5. Start the client against the local server components:

    cd src/client
    npm install
    npm run start:local-backend
  6. Alternative commands:

  • npm run build:demo-backend - to run the client against a demo backend running in the cloud
  • npm run test - to run tests using Jest

CI/CD

We practice continuous integration and deployment. Every merge to master causes a build and deployment to our development environment to occur as follows:

image

Contributing

Please see our contrubtion guidelines.

Who are we?

Reactive Trader was written by the team at Adaptive, a consultancy that specialises in building real-time trading systems.

Please contact us if you'd like to learn more, or follow us via our blog, Twitter, or LinkedIn.

License

This application is made available under the Apache license v2.0.