Trading System Innovation and Trivially Copyable Objects

What’s in a trading system?

Trading systems are complex beasts. They’ve got to be functionally rich, enabling traders to execute a range of order types and trading strategies, across multiple asset classes. They’ve also got to deliver extremely high-performance end-to-end latency and throughput, so that those traders can rapidly access market data and trading venues.

A trading system lacking in either of these departments puts the firm in which it’s used at a competitive disadvantage, one they can ill-afford in a highly competitive marketplace.

Our clients include a broad range of market participants, from tier-1 banks through to buy-side firms plus exchanges and trading venues. Their common challenge is the need for performance and scalability in market connectivity and execution management, combined with the ability for their in-house developers to rapidly develop and deploy business functionality such as new pricing strategies and trading algorithms.

They also want the ability to quickly connect to new markets for pricing and liquidity, with low overheads and without resource constraints or lengthy development and test cycles.

Performance under pressure

At the same time, the IT departments of these firms – who are tasked with delivering and maintaining the high-specification trading systems that enable their firms to lead the market – are under enormous cost and resource pressures. There’s simply no budget for the kinds of specialist, high-end developers who typically build ultra-low latency software. In a nutshell, the challenge for IT departments is therefore how to deliver a world-class trading system with a fairly generalist development team, on a shoestring budget!

Java developers are an attractive option for IT teams. They’re plentiful, industry experienced and less expensive in comparison to the C++ developers who typically dominate the high-performance software space, due to the capabilities and features offered by that language.

The Holy Grail then, surely, would be to find a solution that combines the ubiquity of Java with the performance of C++, delivering the best of both worlds. And happily, this is not just wishful thinking. At Chronicle, we’ve found innovative ways of implementing C++ performance in Java, using C++ methodologies.

Innovating to solve real challenges

Chronicle is all about infrastructure, data management, and transporting data within and between systems as quickly as possible. Having a means of moving data around very fast is therefore pretty fundamental for us.

In a normal Java object there are lots of references to objects or to data types. Copying these objects is therefore expensive in terms of memory and, most importantly, latency.  Incorporating C++ methodology in our software we allow for the definition of objects so simple that they can be copied just by copying the bytes. This is known as a Trivially Copyable Object, and it’s the most efficient type of object that can exist, and the fastest way of copying data – essential for a high-performance trading system.

This capability is unique to Chronicle: no other serialisation library supports trivially copyable objects in this way, by bringing C++ technology and low latency capabilities into Java.

What does this mean in practice?

It means that we can build super-fast trading systems that can be maintained and enhanced by our clients’ existing in-house staff and readily available Java programmers. No need for expensive maintenance and outsourcing contracts, or for hiring specialist resources to support it. This is also far more sustainable in the long term, allowing for a larger pool of developers to maintain the software, working in the programming language with which they’re most familiar.

It also goes a long way towards eliminating the risk that core knowledge is lost due to attrition, which at its extreme has led firms to completely rewrite their software. It can also lead to better staff retention, as existing developers are able to work, with minimal upskilling, on systems using cutting-edge, cool new technology paradigms. And staff retention means that developers have the time and space they need to learn business context, allowing them to develop a product that is relevant and meets the business needs.

Putting it all together – Chronicle Platform

We’ve developed Chronicle Platform as the perfect solution to the challenges faced by our highly competitive but resource and cost-constrained clients.

Our developers have solved all the hard problems of failover, high availability, performance and scalability, so that your developers can focus on those pieces of the puzzle that solve the business problem and take your trading performance to the next level.

We give your teams the support and guidance on structuring and testing our components, and our ongoing technical support ensures that you always experience the highest levels of service, software updates and enhancements as they become available.

Unlike other vendors, our emphasis is on enabling and empowering the talented people within your organisation and building their capabilities around our products. This reduces your dependency on us to make enhancements and to implement new requirements, while still giving you peace of mind that we will be there to support you when you need it.

 

 

 

Peter Lawrey

Peter Lawrey is a Java Champion and Oracle Code One alumnus. Peter likes to inspire developers to improve the craftsmanship of their solutions and his popular blog “Vanilla Java” has had over 4 million views. Peter is the founder and architect of Chronicle Software. He has one of the top number of answers for Java and JVM on StackOverflow.com (~13K).

Subscribe to Our Newsletter