Skip to content
master
Switch branches/tags
Go to file
Code

README.md

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 Showcase page for a full list of the latest features.

image

Demo

Development

Web client
  1. Fork and clone the ReactiveTraderCloud repo (see Contributing page)

  2. Install Node.js and npm

  3. Start the client:

     cd src/client
     npm install
     npm start

    This will connect to the dev back-end in the cloud.

  4. Navigate to http://localhost:3000

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
  1. Fork and clone the ReactiveTraderCloud repo (see Contributing page)

  2. Install dependencies & add them to your path:

  3. Enable RabbitMQ Web Stomp Pluggin

    rabbitmq-plugins enable rabbitmq_web_stomp
  4. Populate Event Store:

    cd src/server/dotNet
    dotnet run -p Adaptive.ReactiveTrader.Server.Launcher --populate-eventstore
  5. 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.

  6. (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
  7. Start the client against the local services:

    cd src/client
    npm install
    npm run start:local-backend
  8. 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 contribution 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.