Reactive Trader Cloud is a real-time FX trading platform demo showcasing reactive programming principles applied across the full application stack.
Improvements have been made across the board since Reactive Trader v1. The UI is revamped with a modern Javascript framework (React), and an event sourcing approach is used by the backend services for data resiliency.
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 are capable of recovery from disconnections. This demonstrates a similar approach to what is put into practice in major financial institutions for trading systems.
A live demo can be found at web-demo.adaptivecluster.com/
The backend is made up of distributed services written in .NET leveraging the cross-platform capabilities provided by .NET Core.
Every server component can be deployed via Docker containers. This allows the use of tools such as Kubernetes to facilitate cluster management for resiliency purposes as well as ease of deployment.
Client-side implementations are available for all major platforms, including desktop browser, OpenFin, Android, iOS, Apple Watch and WPF.
The front-end is written in Javascript with React. More details on the client-side infrastructure are available here.
The back-end services are cross-platform. More details on the back-end infrastructure are available here.
You will find a guide to setup ReactiveTraderCloud for your platform here.
Those 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
- 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
We have written a number of blog posts in which we dive deeper into certain aspects of Reactive Trader.
- 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
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.