Featured post

Fixed Income Trading: New venues

A simple question came up recently in a conversation – how many new Fixed Income trading venues are there?  I could not think of anywhere th...

Friday, 13 February 2015

What is a FIX engine? [Updated]

In a number of consulting roles over the years I've been asked this question. It's something that I still get asked so I'll describe my view. First, some history on the firms in the FIX engine market sector, then some narrative. 
[Updated 13th February 2015]
[Updated 21st April 2016]
The main point to bear in mind is that the FIX engine market is a mature one, there are very few pure-play fix engine vendors on the market any more.  M&A activity has been consistently taking independent firms into the hands of larger firms or private equity ownership.
 
FIX engines that have been acquired
TransactTools
Founded by Sam Johnson and a New York based team of ex-Goldman Sachs technologists. Sold to NYSE Group on the 8th January 2007.  I have looked at NYSE 10-K returns and although I can see that Wombat cost US$200m plus a US$25m retention pool for staff there’s no mention of the price for TransactTools.  Short of asking Sam I will make a guess that it’s materially less than US$200 million.
Javelin Technologies
Appia and Coppelia. Sold to NYFIX on 31st March 2002 for (according to 10K) US$10m in cash, US$41.2million in common stock and US$3.5million to buy out employee options. Subsequently sold to Ullink in 2014.
CameronTec
Founded by John Cameron, an Australian former UBS technologist. Sold to Orc Software in a deal closing in 2006 for US$30.8million.
B2Bits
Acquired by EPAM on April 3rd 2008.  Again, cannot find a price tag attached.
Ullink
Acquired by HgCapital on 3rd March 2014.  Again, no price tag attached. 
SolutionForge
A FIX engine written in C# with some buy-side focus that was acquired by SimCorp in 2005
 
Standalone FIX engines
FIXFlyer
Founded by George Kledaras, a serial FIX engine creator. Still operating in their own name.
RapidAddition
Founded by Kevin Houstoun.  Still operating in their own name.
 
NEW! Standalone FIX engines that are new to the industry
Coral Blocks CoralFIX
Java, New York via Brazil
FIX8 FIX8Pro
C++, Australia
IEISS FIX engine
From Finland, interestingly this is written in Erlang
Chronicle
 
NEW! FIX within FPGA
MBOChip Silicon Feeder
 
Embedded FIX engines
Fidessa
Due to the underlying architecture of the Fidessa platform (tag value paired datastreams in proprietary OpenAccess format) it's quite easy to extend to a FIX engine paradigm.  My understanding is that the first Fidessa FIX engine was built by implementation consultants before being "grandfathered" into the main application stack.
Sungard
No indepth knowledge
Bloomberg

Standalone FIX engines packaged up into other vendor applications
ITG
Appia (own source information)
Thinkfolio
QuickFIX (own source information)
Portware
Appia  
Charles River Development
CameronFIX
Eze Castle
Appia
Digitec D3 rates engine
CameronFIX 
Fidessa LatentZero
 
FIX engines packaged up into FIX networks
ThomsonReuters Autex
ttConnect (own source information). Since this is now owned by Ullink I wonder how long this deal can remain in place?
Fidessa Express
Fidessa
 
NEW! FIX engines that seem to have fallen off the radar...
Pravegatech VegaFIX engine
Speedwell Associates FIX engine [I believe a number of the team are now with RapidAddition]
Cognosys FIX Hardware Solutions
Octatec FIX Gateway
EZX Inc iServer
APT Computer Systems (Bobsguide mention here)
SAP/Sybase/Financial Fusion (Waterstechnology mention here)
 
[If you have any information about other products please get in touch and I'll update this blog post]
 
So, moving on to the core of this post, what exactly is a FIX engine?
 
Think of an operating system and then compare Windows 3.11 with Windows 7.   There’s a lot of functionality in Win7 that did not appear in Win3.11.  Part of this is due to advances in technology and part is due to changes in expectations from the user community as to what should be contained within an operating system.  When reviewing FIX engine functionality it’s wise to use a similar viewpoint – I suggest that a core/satellite model is appropriate.  Core functionality is that which is needed for a FIX engine to bear that name, satellite is functionality that enhances this core – the nice to haves and extensions.
 
Core
  • Sockets library to open/close/read/write over sockets.
  • Configuration to allow IP address and port number of one or more connections to be stored within the engine 
  • Configuration to allow start/stop/sequence number reset times of one or more connections to be stored within the engine
  • Inward interface to allow other applications to send messages to and receive from the FIX engine.  This interface should provide a degree of abstraction such that the FIX specific implementation details are not required to be known by other applications.
  • Persistence to allow sequence numbers and/or FIX messages to be stored to deal with resend requests and temporary outages.
  • Log file generation to allow messages sent and received to be written to disk for operator review
Optional
  • Monitoring event generation capability (JMX and/or SNMP)
  • User interface for monitoring
  • Command line interface
  • Packet capture for log file generation rather than repeated writing to disk
  • Testing tools
  • High availability
  • Higher level abstraction layer capability
  • Log file archiving
We can see that there is not really a huge amount of actual code involved in the implementation of the core functionality.  Indeed, preparing a FIX engine as a proof-of-concept is no more than a few works work for a reasonable developer.  Writing an industrial scale, reliable FIX engine is a harder task.  But, the market has been clear in assessing this matter and ascribing a low value to the core and higher value to the optional components.  Which is exactly what we have seen in the operating system market, which brings this full circle.
 
And here's another type of engine:
 


No comments:

Post a Comment