System Design of a Mobile Trading App for a CFD broker
Case study

System Design of a Mobile Trading App for a CFD broker

About the Client

The client is a European multi-asset broker that provides trading in FX and commodities through CFDs. The broker works with retail and institutional customers and offers two dozen trading tools and over 150 trading products.

The client’s business is regulated by CySEC, FCA, DFSA, and FSCA.

Business Challenge

The client has a legacy mobile app that serves as a source for analytics, market news, and other trading-related content. Yet, their app is in dire need of an on-the-go trading functionality. The client’s current trading servers should serve as trading engines, and the trading UI should offer simplicity and an overall good user experience.

Putting it all together, the expected trading solution must:

  1. Include the features of the client’s current mobile app
  2. Provide trading functionality 
  3. Be integrated with the client’s trading platforms on the account level
  4. Support real and demo trading accounts
  5. Be available on Android and iOS platforms

The performance requirements encompass 5000 concurrent users.

Solution

The client requested Devexperts to design a system that reimagines their app and conforms to all their requirements. After analyzing them, we came up with the following:

The client’s existing app uses a mix of native-app code and cross-platform technologies. That can lead to severe issues with usability, performance, and maintainability. The mobile trading platform should be written using native technologies which are more reliable than cross-platform ones. That’s due to the trading UI’s nature, which constantly experiences load due to a permanent flow of quotes and chart data, as well as position and account metrics data. 

Therefore, we suggested a complete rework of the current client’s mobile app into new native iOS and Android apps. DXtrade Mobile, our mobile trading solution,  could serve as a basis for the new apps, so we wouldn’t need to develop an app from scratch. We also proposed taking the DXtrade Mobile code, forking it, and building custom apps on top. That would allow a swift implementation.

DXtrade Mobile also includes a mobile gateway, which is a server-side application feeding mobile apps with quotes, charts, account data — real-time and historic — and other content. In a clustered deployment, the mobile gateway acts as a load balancer.

Our implementation scheme also has a server-side product that enables easy integration with the broker’s ecosystem — in our product line, Gate45 plays this role.

The client owns 14 trading servers with real and demo trading accounts. The setup we suggested is flexible: we can change the number of trading servers in the future, without affecting the overall architecture and approach.

Implementation scheme
Implementation scheme

The Entire Process

We’ll backport the client’s existing app into the native mobile trading platform. The mobile gateway will serve as a central connectivity point for the mobile front-end, the client’s CRM, and Gate45. 

The solution requires the following high-level scope of work:

  • Forking DXtrade Mobile’s code 
  • Reimplementing the existing app’s functionality 
  • Integrating with the client’s trading servers via Gate45

We propose designing all systems for high availability across instances. Front-end services should be deployed using a content delivery network, while back-end services use auto-scalers or containerization.

All systems are horizontally scalable. The middleware back-end sets up multiple connections to the client’s trading servers. That way, the system would still work even if the primary connection is down. The broken connections undergo restoration while the reserve connection is being set up.

Results

We delivered a system design for the new mobile trading app. It adheres to all the client’s functional and performance requirements and preserves the functions of their existing app.

Since the legacy app was written with cross-platform technologies, we don’t advise implementing the trading functionality into it. That’s because some issues with usability, performance, and maintainability could arise. The new applications will be written using technologies native to iOS and Android, providing high-end performance and a smooth user experience.

The resulting solutions will have the following load characteristics:

ParameterValue
Login rate150 per minute
Order rate1500 per minute
Chart rate350 per minute
Widget message rate150 per minute
Accounts1 per user
Max concurrent users online5 000
Load parameters for the mobile trading platform

We designed the new mobile apps to be scalable for future growth.

For the sake of swift delivery, we proposed using our mobile trading platform DXtrade Mobile as a basis for the new solutions. It’s a client-server set of applications that allows trading on the go. It has real-time portfolio monitoring, market data streaming, risk management tools for traders, and external analytical content such as news and charts. Our native mobile trading front-ends for iOS and Android give traders high-end performance through proprietary technology and a smooth user experience.