OnixS Homepage

FIX FAST (FIX Adapted for Streaming) Decoder and Encoder

FIX protocol member

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 (Chicago Mercantile Exchange (CME), ICAP, Eurex, the International Securities Exchange (ISE), NYSE, OM Exchanges (OMX), to date).

One of the key features of FAST is the ability to avoid sending data that has been sent before.

The major advantage of FAST is reduced bandwidth requirements and reduced latency, but they 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:

Symbol|MDEntryType|MDEntryPx|MDEntrySize|MDEntryTime

Part of the FIX message:

55=FOO1|269=0|270=1300|271=100000|273=17:57:01.352

The corresponding part of the FAST message:

FOO1|0|1300|100000|17:57:01.352

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 follows.

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).