FAST (an acronym for FIX Adapted for Streaming) is a binary compression algorithm optimised for real-time distribution of high-volume market data. It was developed by FIX Protocol Ltd (FPL) to reduce the bandwidth requirements and the latency of message oriented data feeds. This protocol has gained recognition and adoption among major exchanges and ECNs.
One of the key features of FAST is the ability to avoid sending data that has been sent before with the major advantage being reduced bandwidth requirements and reduced latency, but these are achieved at the expense of increased processing time/load and more complex processing algorithms.
FAST does not define any requirements to the business structure of the messages; it only addresses the data representation. Therefore, FAST can be used to compact not only FIX messages, but also non-FIX proprietary messages structures.
The FAST Protocol assumes that the structures of the transferred messages, as well as encoding rules, are agreed between the counterparties. This is usually done via the exchange of machine readable XML-based FAST templates.
FAST uses the following approaches to compact data messages:
Implicit Tagging: The order of fields within the FAST message is fixed, so the field meaning is defined by its position in the message and there is no need to transfer the field tag to describe the field value. For example:
Part of the FIX message:
The corresponding part of the FAST message:
Information about the previous field value as well as about the initial value is used to reduce the amount of redundant information sent with each successive message.
Field Encoding: Field Encoding Operator defines the actions that need to be taken on the received field value, the previous field value and the initial value in order to obtain the final value.
For example, if the Default Field Operator with the initial value "FUT" is defined for SecurityDesc <107> field in the FAST template and this field is empty in the received message then the "FUT" is used as the final field value.
Field Encoding Operators are specified in the FAST Template.
Presence Map: A presence map is a sequence of bits that starts each FAST message. Each bit in the presence map can signal the presence or absence of a particular field value in the binary streams that follow.
Stop Bit: The most significant bit in each byte is used as an indicator of the field delimiter instead of a dedicated 8-bit field delimiter value.
Binary Encoding: Field values are represented as bit sequences (contrary to the character (text) representation that is used in the FIX protocol).
FAST (FIX Adapted for Streaming)
The OnixS FIX Engines include out-of-the-box fully standard FAST 1.1/1.2 implementations for C#, C++ and Java.
They include versatile diagnostics and a comprehensive suite of sample applications (with the source code) designed to significantly reduce the time and cost of FIX FAST development and implementation.