/ReactiveTraderCloud

Real-time trading platform demo showcasing reactive programming principles applied across the full application stack.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

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, React-RxJS, Node.js and running on Hydra, 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:1917

Manually update contracts for Trading Gateway API
  1. Open hydra-reactive-trader project in IntelliJ IDEA and run:

    ./gradlew
    
  2. Copy file component/gateway/trading/api/build/generated-sources/codecs/main/resources/trading-gateway.hyer to UI project src/client/trading-gateway.hyer

  3. Back in src/client, run:

    npm run generateCod
    

    This will regenerate TradingGateway.ts (file://./src/client/src/generated/TradingGateway.ts)

Run against local Backend Services
  1. Follow instructions to start Backend Services

  2. Run:

    VITE_HYDRA_URL=ws://localhost:8929 npm start
    

CI/CD

We practice continuous integration and deployment. Every branch and pull request triggers a build and deployment to an ephemeral environment. Merging to master causes a build and deployment to our development environment.

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.