# Simple Binary Encoding

DevFeed: [Simple Binary Encoding](<https://devfeed.tech/articles/simple-binary-encoding-13635.md>)

Original publisher: [Read original article](<https://mechanical-sympathy.blogspot.com/2014/05/simple-binary-encoding.html>)

Author: Martin Thompson (noreply@blogger.com)

Published: 2014-05-05T19:01:00Z

Content type: article

Language: en

Sources: [Mechanical Sympathy](<https://devfeed.tech/sources/mechanical-sympathy.md>)

Topics: [Finance](<https://devfeed.tech/topics/finance.md>), [Low Latency](<https://devfeed.tech/topics/low-latency.md>), [data](<https://devfeed.tech/topics/data.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Java](<https://devfeed.tech/topics/java.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [big-data](<https://devfeed.tech/tags/big-data.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [finance](<https://devfeed.tech/tags/finance.md>), [financial](<https://devfeed.tech/tags/financial.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [net](<https://devfeed.tech/tags/net.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [performance](<https://devfeed.tech/tags/performance.md>), [time](<https://devfeed.tech/tags/time.md>), [xml](<https://devfeed.tech/tags/xml.md>)

## AI overview

The article introduces FIX Simple Binary Encoding (SBE), a binary message codec designed to improve encoding and decoding efficiency for low-latency trading, especially market data. It describes reference implementations in Java, C++, and .NET and outlines design constraints such as placing variable-length fields at the end of messages.

## Source excerpt

Financial systems communicate by sending and receiving vast numbers of messages in many different formats. When people use terms like "vast" I normally think, "really..how many?" So lets quantify "vast" for the finance industry. Market data feeds from financial exchanges typically can be emitting tens or hundreds of thousands of message per second, and aggregate feeds like OPRA can peak at over 10 million messages per second with volumes growing year-on-year. This presentation gives a good overview. In this crazy world we still see significant use of ASCII encoded presentations, such as FIX tag value, and some more slightly sane binary encoded presentations like FAST. Some markets even commit the sin of sending out market data as XML! Well I cannot complain too much as they have at times provided me a good income writing ultra fast XML parsers. Last year the CME, who are a member the FIX community, commissioned Todd Montgomery, of 29West LBM fame, and myself to build the reference implementation of the new FIX Simple Binary Encoding (SBE) standard. SBE is a codec aimed at addressing the efficiency issues in low-latency trading, with a specific focus on market data. The CME, working within the FIX community, have done a great job of coming up with an encoding presentation that can be so efficient. Maybe a suitable atonement for the sins of past FIX tag value implementations. Todd and I worked on the Java and C++ implementation, and later we were helped on the .Net side by the amazing Olivier Deheurles at Adaptive. Working on a cool technical problem with such a team is a dream job. SBE Overview SBE is an OSI layer 6 presentation for encoding/decoding messages in binary format to support low-latency applications. Of the many applications I profile with performance issues, message encoding/decoding is often the most significant cost. I've seen many applications that spend significantly more CPU time parsing and transforming XML and JSON than executing business logic. S