Matching Engines: An overview

Matching engines are at the core of electronic trading.  In many cases the actual software is old and written using techniques, patterns and languages from the past.  We've considered some enhancements to matching engines before "Matching engine for corporate bonds?". 
We've also looked at possible future directions for exchanges "Exchanges: What next?" and new trading venues for Fixed Income "Fixed Income Trading: New venues"
Finally, we've also looked at a replacement for the entire concept of a central limit order book model "Google, robots.txt and the “Search for Liquidity”: Fixed Income edition".
 
This post will just list out some of the matching engines that are out there in a product form along with some analysis of the technology used.  Note that this is not an exhaustive list, I will update over time...
  • Cinnober 
TRADExpress.  Includes Azul Zing - a JVM that runs a clever implementation of garbage collection called Continuously Concurrent Compacting Collector. Supports multiple databases (Oracle, MySQL, IBM DB2, Sybase, Microsoft SQL Server).  Cinnober seem to be the flavour of the month and have had a series of good news items over the last few years.
  • LSE Group
The London Stock Exchange Group have two:
  1. Millenium IT Millenium Exchange.  As acquired by and used by the LSE.  Written in C++ and runs on SUSE Linux.
  2. Gatelab exchangepath-100µs matching engine. 
Acquired Orbixa and their ThymeX matching engine.
This was used by QuoteMTF before they shut up shop.
  • NasdaqOMX 
Nasdaq own several including:
  1. Genium INET matching engine.  Judging by this job advert it's written in C/C++ and runs on Linux.
  2. The X-Stream INET matching engine runs on Linux/UNIX and judging by the age of the code base I expect it will be C/C++.
  3. Click XT - Clearly of an older generation - runs on good old OpenVMS on Alpha/Itanium and Windows/Intel. With HP Reliable Transaction Router middleware.
  4. SAXESS - being replaced
  • ICE/NYSE
UTP, Pillar (Pillar may be the old Algo Technologies matching engine that ICE acquired).
  • BATS/Chi-X
Inhouse built Linux based matching engine
  • List Group
FTX Matching engine. 
  • Connamara Systems
Matching engine component.  Seems interesting from a pure technical perspective - Erlang, RESTful interface using JSON.
  • Omnesys
NEST Repo/Money Market Matching engine. Omnesys was acquired by ThomsonReuters on 16th September 2013. 
  • Argo Software Engineering
Argo Matching Engine (SIMEX) is a C++ application running on Windows or Linux and portable to any other *nix implementation.
  • LMAX
LMAX is an f/x exchange.  Their technology has always been a big part of their value proposition - just google LMAX disruptor for further details

Summary
We see a real mixture of tried and trusted (considered legacy?) and much more modern technology.  At the moment it appears that the tide is turning and the demands of lower latency are forcing exchanges to rip-and-replace systems to get meaningful performance improvements rather than merely incremental improvements.

As always with software, the process of procurement must be based upon a mastery of the business requirements, a hard edged understanding of commercial realities, accurate estimation of delivery capability of the matching engine vendor and a substantial degree of technical skill to actually evaluate and measure the performance claims made by the vendor.
 
And here's a real engine...

Comments