🔊CEOInterviews

Thomas Rodgers on serialization

From CppCon 2014: Thomas Rodgers "Implementing Wire Protocols with Boost Fusion" · · CppCon

“Protocol Buffers, Thrift and similar IDL/code-generator approaches are great when you control both ends of the communication, but there are many important use cases where this is not true — third‑party systems, financial exchanges, latency‑sensitive scenarios and embedded devices.”

Thomas Rodgers
Executive VP and Chief Strategy & Business Development Officer, McKesson Corporation
Policy Impact serializationprotocol designfinancial exchangeslatency

On , Thomas Rodgers, Executive VP and Chief Strategy & Business Development Officer at McKesson Corporation, spoke about serialization during CppCon 2014: Thomas Rodgers "Implementing Wire Protocols with Boost Fusion" on CppCon.

CppCon 2014: Thomas Rodgers "Implementing Wire Protocols with Boost Fusion"
Watch on YouTube
CppCon 2014: Thomas Rodgers "Implementing Wire Protocols with Boost Fusion"
CppCon
Watch on YouTube
http://www.cppcon.org -- Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2014 -- There are a number of common serialization formats available which work well for marshaling C++ types into messaging protocols, e.g. ProtoBufs, Thrift, JSON, XML, FIX, etc. Unfortunately, not every protocol uses one of these popular encodings and instead implements a unique binary protocol. The classical "C" way of handling binary protocols is to use packed structs, unfortunately there are many binary protocols which are not particularly friendly to using this approach due to things like nested variable length data structures, etc.. The packed struct approach is also fairly limited in that it only generally supports primitive POD types. This talk will explore an approach that uses Boost's Fusion library to implement an easily extensible serialization mechanism for on a non-trivial binary financial exchange protocol which exposes the underlying data in terms of "modern" C++ types. The talk will also cover aspects of general use of Boost Fusion and Boost MPL, type traits, enable_if, SFINAE, and other members of the C++ type system bestiary. -- Thomas Rodgers has been programming in C++ since 1989 and a member of the C++ Standards Committee since 2013. Thomas has worked in the financial industry since 1996 and currently works for DRW Trading Group in Chicago. -- Videos Filmed & Edited by Bash Films: http://www.BashFilms.com *-----* *--* *-----*
Thomas Rodgers

About Thomas Rodgers

Executive VP and Chief Strategy & Business Development Officer · McKesson Corporation

Thomas Rodgers, Executive Vice President and Chief Strategy & Business Development Officer at McKesson, previously worked at DRW Trading, where he developed techniques for implementing wire protocol handlers in C++. In a 2014 CppCon presentation, Rodgers described challenges with binary protocols used by financial exchanges and third-party systems, noting that standard serialization formats like Protocol Buffers or Thrift are not always suitable when one does not control both ends of communication. He advocated for using Boost.Fusion to enable memberwise iteration and type dispatch on C++ structs, allowing generic reading and writing of binary data without the error-prone manual member-by-member conversion required by traditional packed-struct overlays. Rodgers stated that his team used these techniques in exchange market-data feed handlers, achieving processing times in the low hundreds of nanoseconds per tick. He also discussed the need for custom handling of signed integral types over the wire and described how some exchanges define prices using a signed exponent and 32-bit unsigned mantissa to avoid rounding errors. Rodgers referenced the C++ study group SG7, which was exploring compile-time reflection as a potential long-term solution for such protocol-handling challenges.

Profile compiled from Thomas Rodgers's verified public interviews and appearances. See all quotes & transcripts →

More from Thomas Rodgers McKesson Corporation (MCK) Full Transcript Explore All Executives