Book Image

Building Low Latency Applications with C++

By : Sourav Ghosh
5 (1)
Book Image

Building Low Latency Applications with C++

5 (1)
By: Sourav Ghosh

Overview of this book

C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies. With this book, you’ll gain insights into the performance requirements for low latency applications and the C++ features critical to achieving the required performance latencies. You’ll also solidify your understanding of the C++ principles and techniques as you build a low latency system in C++ from scratch. You’ll understand the similarities between such applications, recognize the impact of performance latencies on business, and grasp the reasons behind the extensive efforts invested in minimizing latencies. Using a step-by-step approach, you’ll embark on a low latency app development journey by building an entire electronic trading system, encompassing a matching engine, market data handlers, order gateways, and trading algorithms, all in C++. Additionally, you’ll get to grips with measuring and optimizing the performance of your trading system. By the end of this book, you’ll have a comprehensive understanding of how to design and build low latency applications in C++ from the ground up, while effectively minimizing performance latencies.
Table of Contents (19 chapters)
1
Part 1:Introducing C++ Concepts and Exploring Important Low-Latency Applications
6
Part 2:Building a Live Trading Exchange in C++
10
Part 3:Building Real-Time C++ Algorithmic Trading Systems
14
Part 4:Analyzing and Improving Performance

Defining the operations and interactions in our matching engine

Here, we will declare and define the types, constants, and structures we will need as we build the matching engine in this chapter.

Defining some types and constants

Let us define a few common typedefs to document the types we will use in the rest of this book. We will also define some constants to represent some assumptions that exist, purely for the purpose of simplifying the design of our matching engine. Note that you don’t need these limits/constants, and we leave this enhancement up to the interested among you. All the code for this subsection can be found in the Chapter6/common/types.h file in the GitHub repository for this book.

Defining a few basic types

We will define some types to hold different attributes in our electronic trading system, such as the following:

  • OrderId to identify orders
  • TickerId to identify trading instruments
  • ClientId for the exchange to identify different...