Optimise Trading Systems for the Cloud with Microservices

Introduction

In today’s dynamic financial markets, trading systems must be agile, scalable, and reliable to maintain a competitive edge. Traditional monolithic systems often struggle to meet these requirements. Chronicle Software’s Java microservices architecture offers a superior solution, enhancing performance and providing multiple deployment options that can ease migration towards the cloud.

From Monolith to Microservices

Traditional Monolithic Systems
In common with many classes of applications, trading systems have traditionally been designed and implemented as large, monolithic units. While providing good latency performance, these systems are challenging to scale, maintain, and update. Changes, no matter how small, can be error-prone, and normally require redeployment of the entire system, leading to service downtime. The volume of trading, and complexities of markets today make this downtime unacceptable.

The Shift to Microservices
Microservices architecture treats applications as collections of small, independently deployable units, each typically handling a specific business function. This approach enhances flexibility, scalability, and resilience—addressing the shortcomings of the monolithic approach.

The Microservices Advantage with Chronicle Software

Scalability and Agility
Chronicle’s Java microservices framework, known as “Chronicle Services,” enables the development of simple, efficient, and testable microservices. These are interconnected using Chronicle Queue, an IPC medium built on memory-mapped files that supports the exchange of messages between services at memory speed.
Services can be deployed in a variety of ways, including to containers, such as Docker. This makes it straightforward to introduce Chronicle Services into an existing application, allowing piecemeal migration to a fully optimised cloud-native microservice architecture.

Performance Optimisation

Reducing Latency
Latency is a critical factor in trading systems. A single Chronicle Service can process over 1 million events per second, essential for high-frequency trading where every microsecond counts. Chronicle Queue Enterprise further supports scalable and fault-tolerant resilience over a network.

Minimising Complexity in Service Implementation
Chronicle’s services are single-threaded, allowing them to be implemented as “pure” functions—given the same inputs, they will produce the same outputs—enhancing reliability, maintainability and performance. Processing events within a single thread removes the complexity that comes with operating over multiple threads, and its associated impact on performance.

Real-Time Performance Monitoring
The Chronicle Services runtime offers continuous monitoring of each event’s processing time and enables performance alerts if this is longer than expected. Built-in monitoring tools identify performance bottlenecks by recording and analyzing stack traces. This is crucial in production environments, particularly for latency-sensitive operations like latency arbitrage, where knowing the exact location of performance stalls is vital.

Handling State

Event Sourcing
Chronicle services maintain mutable state through event sourcing – all the events written to chronicle queues are retained in perpetuity. Following a restart, a service’s mutable state can be reconstructed by replaying the events or by loading from periodic snapshots where the number of events is large.

Historic Data Handling
Traditional trading systems often relied on relational databases for state management, although in many cases sophisticated querying was not required. Chronicle Software’s event-driven architecture provides efficient state recovery and robust audit trails without adding unnecessary complexity, enhancing system robustness and reliability.

Integration

The Chronicle Services framework allows data adapters to be used as a bridge between services and external applications or systems in a number of ways. These data adapters seamlessly bridge between services and external databases, RESTful web services, market data feeds, or other data sources.

Deployment

Deployment Flexibility
Chronicle’s services are designed as self-contained processing units with flexible deployment options. Depending on latency requirements, services may operate in separate processes with dedicated cores or in different processes sharing cores when the lowest latency is not essential. Services can also be deployed in containers, either on the same machine or across a cluster.

This flexibility supports various deployment strategies, from bare-metal servers to cloud environments, optimizing both performance and resource usage.

Improved Fault Tolerance and Resilience
Microservices enhance fault tolerance by isolating failures to individual services, making it easier to identify, diagnose, and resolve issues when they occur.

Future-Proofing for Cloud Migration

Leveraging Cloud-Native Technologies
Chronicle Service’s support for deployment to containers, and the ability to manage these using standard container orchestration systems makes trading systems more adaptable towards modern cloud environments.

Strategic Implementation

Refactoring and Re-architecting
Transforming legacy systems into microservices can be challenging, but Chronicle’s services architecture offers a streamlined solution for integration into existing and evolving ecosystems. Rather than a complete overhaul, Chronicle’s approach allows for incremental adoption.

Several financial institutions have modernized their trading systems with Chronicle’s microservices and cloud migration strategies. Projects include:
A leading Tier 1 FX trading operation developed, with Chronicle’s help, a bespoke FX pricing, trading, and auto-hedging system within six months, demonstrating the rapid development capabilities and robust performance of Chronicle Services.
StoneX have successfully leveraged Chronicle Services and Chronicle FIX to enhance their trading performance. By incorporating Chronicle’s architecture, they seamlessly integrated into their existing infrastructure.

Conclusion

Chronicle Software’s microservices framework provides a compelling solution for enhancing performance and future-proofing trading systems, especially for cloud migration. Adopting a microservices architecture allows financial institutions to achieve greater scalability, agility, and resilience. This positions them to leverage future technological advancements and maintain a competitive edge in the market. Implementing best practices in refactoring, and phased migration strategies ensures a smooth and effective transition to cloud-based trading systems.

Chronicle’s microservices and cloud-native technologies offer a robust framework for modernising trading systems. By breaking down monolithic applications into manageable microservices, organisations can achieve improved performance, reduced latency, enhanced fault tolerance, and greater flexibility. These benefits are crucial for maintaining competitiveness and ensuring systems are ready to meet future technological challenges and opportunities.

Rob Austin

As a Java developer with more than 20 years of experience, primarily on trading systems for investment banks, he has mostly focused on performance-critical pricing systems. As one of the first employees at Chronicle Software, he has been instrumental in building up its suite of software libraries.

Subscribe to Our Newsletter

Featured Products

Trading

Chronicle
FIX

The fastest Java FIX Engine on the market with microseconds latency. Trusted by top-tier banks and funds with thousands of deployed sessions globally.

Read more >>

Data Processing

Chronicle Queue Enterprise

Persisted messaging framework that handles massive throughput. Delivers superior control of outliers, and replicates easily across hosts.

Read more >>

Event-Driven Apps

Chronicle
Services

A framework for event-driven architecture that makes it easy to build, test and maintain microservices or monoliths, locally or in the cloud.

Read more >>