FIX Antenna HFT Overview

What is HFT Antenna?

HFT Antenna is a library that is designed as a solution for low-latency FIX message routing. 'HFT' means high-frequency trading.

HFT Antenna incorporates the advantages of special Linux-specific features and best message routing practices.

HFT Antenna Features

HFT Antenna FIX Engine is optimized for stable deterministic latency for routing from multiple sessions to multiple sessions. This is achieved by:

    • effective utilization of CPU cores: less number of physical cores is required to support more sessions;
    • usage of a new socket dispatcher optimized for Solarflare OpenOnload;
    • usage of new Memory Cached Message Storage which reduces latency jitter;
    • usage of the FIX message object pool which reduces the number of memory allocations.

The main features of the HFT Antenna FIX Engine are:

FeatureDescription
High throughput / low latency

The highest performing FIX engine in existence aimed for the cases of routing from multiple sessions to multiple sessions. See FIX Antenna HFT Benchmarks for details.

Supports standard FIX 4.X
  • FIX standard compliance: FIX 4.0, 4.1, 4.2, 4.3, 4.4
  • Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.)
  • Message validation for standard FIX Antenna C++ FIX message type (well-formedness, required and conditionally required fields, fields order, types, etc.)
  • Customizable FIX protocol with user-defined tags and message types. Create your own FIX dialect e.g. defined an extra field for a message, change the "required" attribute, etc. in a friendly XML format
  • Guaranteed delivery
    • Relies on the store and forward technique
    • Flat files are used for persistence to achieve maximum performance
Multiple session management
  • Supports hundreds of concurrent sessions on a single instance on recommended hardware. The number of concurrent sessions can be increased if more CPUs are added
  • Each session can be configured separately. FIX Dialect can be configured for session
Highly customizable FIX session level
  • Different modes of handling sequence numbers during Logon and reconnect
  • Intraday logout tolerance
  • Custom logon message
  • Force sequence number reset on logon
Security
  • Standard FIX authorization utilizing the username and password fields in the FIX Logon message
  • Auto-accept incoming sessions (to simplify development and testing) and auto-decline non-pre-configured sessions
Reliability vs. performance
  • Uses low latency dispatcher optimized for Solarflare OpenOnload
  • Supports the following storage types which guarantee that the session can recover its state after connection failure:
    • Persistent - stores data to the flat files
    • Memory Cached Message Storage - tracks the last processed SeqNum from IN and OUT index files
  • Supports transient sessions, which do not use any persistence. This significantly increases performance giving up recovery. Applicable when recovery is not required (e.g. for market data) or when persistence is done by the application, which uses the FIX Antenna engine
  • Provides the ability to enable async logging for the threads: the message is written to the memory and then a dedicated logger thread stores it to the log.
  • Provides API for persistence management - user can discard saving of incoming message or save it later
  • Provides API for message "cookie" - storage can store user information attached to the FIX message.
Performance tuning
  • Ability to enable or disable Nagle's algorithm to minimize latency or maximize throughput
  • Ability to configure (or turn off) the number of messages to be joined in a bunch before sending
  • Ability to configure CPU affinity to enable the binding and unbinding of a thread to a CPU or a range of CPUs, so that the thread will execute only on the designated CPUs rather than any CPU
Monitoring and administration
  • Built-in support of command console (telnet and local)
  • Utilizing FIX session and the same FIX listen port for administrative session
  • Friendly XML-based DSL for administrative instructions: easy to read, easy to extend
  • Public API to override and/or extend existing administrative instructions
  • Rich monitoring and administration GUI out of the box
Message composition API
  • Supports new message type - LiteFixMessage:
    • LiteFixMessage API is similar to FIX Antenna Java message API as both share the same design principles of the new FIX message
    • LiteFixMessage objects can be stored in the message pool
    • LiteFixMessage allows to iterate through FIX message tags
  • Provides TagVisitor interface that can be invoked during FIX message parsing and helps to collect message tags in a side structure used by the user application
  • Provides the ability to use standard FIX Antenna C++ FIX message type (less performant though)
Integration

Is supplied as a shared object dynamic library(.so) for Linux

Packaging

The package includes:

  • Binaries
  • Header files
  • Programmer's Guide
  • API Guide
  • Samples and benchmarks
  • Software escrow is available on demand

HFT Antenna Specifics and Limitations

The table below represents the main features in the context of a comparison of two products: FIX Antenna C++ and FIX Antenna HFT.

Feature/ProductFIX Antenna C++FIX Antenna HFT
Windows OS✓✓
Linux OS✓✓
x64✓✓
FIX 4.X✓✓
FIX 5.X✓
Multiple FIX sessions✓✓
Standard FIX routing (OnBehalfOf + DeliverTo)✓


FAST✓
FIX dialects support✓✓
FIXML support✓
All asset classes✓✓
Sessions-initiators✓✓
Sessions-acceptors✓✓
Customizable message validation✓
Message encryption✓
Message "cookie"
✓
Login/password encryption✓
Recovery after failure✓✓
Persistent sessions✓✓
Transient sessions✓✓
Later delivery when the connection is not established✓✓
Reject message when the connection is not established✓


C++ API✓✓
Java API✓
.NET API✓
FIX integrated control center✓✓
Built-in support of command console (telnet and local)
✓
FIX/FIXML conversion✓
Low latency✓✓
High throughput✓✓
Async logging
✓
Async and parallel processing of incoming messages
✓
Reset the sequence number on each Logon (ICE mode)✓
Ignore sequence number too low at Logon✓
Backup connections✓
Username and password in Logon✓✓
Pre-configured to work with multiple exchanges✓
CME Globex market data interface✓
Out-of-band Drop Copy service
✓
Flexible cores binding out of the box
✓

API's

HFT FIX Antenna provides the following main APIs for trading applications:

    • Create multiple FIX sessions (initiators and acceptors)
    • Open and close the FIX session
    • Form LiteFixMessage message
    • Parse LiteFixMessage message
    • Send and receive LiteFixMessage messages
    • Set sequence numbers
    • Read messages from FIX session logs 

See the full list of HFT FIX Antenna APIs.

FIX Antenna HFT use cases

Order Router

FIX Antenna HFT can be used as a FIX Engine in Order Routers, which main responsibility is to deliver the order from the end-user to Exchange as soon as possible with minimum latency.

By its nature, FIX Antenna HFT with its stable deterministic latency aims to serve routing from multiple sessions to multiple sessions and can be used in Order Router application in the most effective way.

FIX Gateway

FIX Antenna HFT can be used under the hood of the FIX Gateway designed to support hundreds of sessions with multiple users per session, to perform authentication and validation, and to transmit data from the source to the application and from the application to counterparties.

The most essential parts of such FIX Gateway should be a fast session-level and effective model of threads for processing incoming messages which can be fully achieved by using FIX Antenna HFT capabilities with its flexible and high-performance message processing mechanism, ability of handling spikes in load and effective utilization of CPU cores. In that way, relying on the FIX Antenna HFT FIX Engine, all the main efforts can be directed to the application level.

Pre-Trade Risk Check Module

FIX Antenna HFT is used as a FIX Engine in one of the B2BITS products - Pre-Trade Risk Check Module (RCM).

 

Risk Check Module performs pre-trade activities and calculates risk checks restricting actions of one or multiple traders at the same time. By their nature, these pre-trade activities become an additional step in order to reach the exchange or client, which can obviously affect the latency.

Using capabilities of the FIX Antenna HFT Pre-Trade Risk Check Module ensures low latency pre-trade risk checks and order routing.

In this way, Pre-Trade Risk Check Module can be used by the Exchanges in order to remove the load in terms of Risks and limits checks and focus on other high-priority activities like order matching, market data processing, etc. In its turn, buy-side firms can also use the Pre-Trade Risk Check Module making sure that all the pre-trade risk checks are performed with minimal latency impact.