Reactive Trader Cloud
Overview
Reactive Trader Cloud is a real-time FX trading platform demo showcasing reactive programming principles applied across the full application stack.
Since Reactive Trader v1 we've improved the platform across the board, eg we've revamped the UI with a modern JavaScript framework (React) and increased data resiliency by using an event-sourcing approach for the backend services.
All frameworks and libraries used are entirely open source, and each component can be run on either Windows, Linux or Mac OS X.
The services are distributed and can be recovered from disconnections - this is similar to the approach that major financial institutions use for trading systems.
Live demo
For a live demo, see web-demo.adaptivecluster.com/
Architecture
The backend is made up of distributed services written in .NET using the cross-platform capabilities provided by .NET Core.
You can deploy server components via Docker containers. This means you can manage clusters using tools such as Kubernetes for better resiliency and ease of deployment.
Client-side implementations are available for all major platforms, including desktop browser, OpenFin, Android, iOS, Apple Watch and WPF.
Front end
The front end is written in JavaScript with React. For more details on the client-side infrastructure, see here.
Back end
The back-end services are cross-platform. For more details on the back-end infrastructure, see here.
Getting started
You can go to the You want to page to follow build and deployment with docker
Or for more traditional builds for your platform, see here.
Concepts
The following topics will be covered in the upcoming weeks:
- vNext Client Architecture with ES.next, React, Webpack, RxJs
- Cross Platform .Net Development
- Event Sourcing
- Web Messaging with WAMP & Crossbar
- Always Connected Apps in a Microservice Environment
- Desktop Client Support with OpenFin
- Failover and Resiliency in a Microservice Environment
- Deployment with Containers
Talks and podcasts
- Reactive, Event Driven User Interfaces by Ray Booysen at NDC London 2014
- Event Driven User Interfaces by Lee Campbell & Matt Barrett at React London 2014
- It's all messages now; where are my abstractions? by Matt Barrett at NDC Oslo 2015
- The Hanselminutes: Creating Reactive User Interfaces with Matt Barrett
- Full-stack ReactiveX with Qiming Liu on .NET Rocks!
- Developing Modern Applications in .NET core with Docker and Kubernetes with Qiming Liu and James Watson
Blog posts
To read about aspects of Reactive Trader in greater depth, check out the following blogs:
- Asynchrony and concurrency in which we discuss embracing asynchrony and concurrency at all levels of your application.
- Everything is a stream, in which we point out that all service calls from Reactive Trader result in streams of responses, not just a single response - and why this is so powerful.
- System health & failures, in which we dig more into models of system health so you can easily respond to failures in your application, and how to use heart beating to detect component failure.
- John's series of blog posts on web messaging and abstractions
Who are we?
Reactive Trader was written by the team at Adaptive, a consultancy that specialises in building real-time trading systems. We have many years of experience in building trading systems for clients with highly demanding latency and reliability requirements. Over the years we have learnt quite a few lessons, and wanted to talk about and point to examples of how we solve technical problems related to real-time delivery of messages.