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.
Follow the steps to run with Docker
From the src directory run
Set the environment variables:
export DOCKER_USER=localuser export BUILD_VERSION=0.0.0
Run the following command:
docker stack deploy --orchestrator kubernetes --compose-file ./docker-compose.yml rtcstack
To see your services and pods running, run:
kubectl get services kubectl get pods
Open a browser and navigate to http://localhost to see the application running
To shutdown / remove stack, run:
kubectl delete stack rtcstack
Fork and clone the ReactiveTraderCloud repo (see Contributing page)
Install dependencies & add them to your path:
Enable RabbitMQ Web Stomp Pluggin
rabbitmq-plugins enable rabbitmq_web_stomp
Populate Event Store:
cd src/server/dotNet dotnet run -p Adaptive.ReactiveTrader.Server.Launcher --populate-eventstore
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
(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
Start the client against the local services:
cd src/client npm install npm run start:local-backend
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
We practice continuous integration and deployment. Every merge to master causes a build and deployment to our development environment to occur as follows:
Please see our contribution guidelines.
Reactive Trader was written by the team at Adaptive, a consultancy that specialises in building real-time trading systems.
This application is made available under the Apache license v2.0.