How cchrisking/building-low-latency-applications-with-cpp works
This repository accompanies a book on building low-latency C++ applications; its later chapters assemble a simulated trading ecosystem. Market updates reach a trading engine and its strategies, which manage risk and issue orders through a gateway. The exchange-side server sequences requests for matching, then publishes client responses and market data. The graph uses Chapter12 paths to represent the most developed version in the tree, including the alternative order-book implementation. README capability claims are broad, and source excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: trade_engine.cpp Trade engine · lf_queue.h Lock-free queues · matching_engine.cpp Matching engine · order_server.cpp Order server
Components 24
Trading system
- Trading entry
Chapter12/trading/trading_main.cpp - Market consumer
Chapter12/trading/market_data/market_data_consumer.cpp - Trade engine
Chapter12/trading/strategy/trade_engine.cpp - Local book
Chapter12/trading/strategy/market_order_book.cpp - Feature engine
Chapter12/trading/strategy/feature_engine.h - Position keeper
Chapter12/trading/strategy/position_keeper.h - Market maker
Chapter12/trading/strategy/market_maker.cpp - Liquidity taker
Chapter12/trading/strategy/liquidity_taker.cpp - Order manager
Chapter12/trading/strategy/order_manager.cpp - Risk manager
Chapter12/trading/strategy/risk_manager.cpp - Order gateway
Chapter12/trading/order_gw/order_gateway.cpp
Exchange system
- Exchange entry
Chapter12/exchange/exchange_main.cpp - Order server
Chapter12/exchange/order_server/order_server.cpp - FIFO sequencer
Chapter12/exchange/order_server/fifo_sequencer.h - Matching engine
Chapter12/exchange/matcher/matching_engine.cpp - Exchange book
Chapter12/exchange/matcher/me_order_book.cpp - Map book option
Chapter12/exchange/matcher/unordered_map_me_order_book.cpp - Market publisher
Chapter12/exchange/market_data/market_data_publisher.cpp - Snapshot synthesizer
Chapter12/exchange/market_data/snapshot_synthesizer.cpp
Runtime infrastructure
- Lock-free queues
Chapter12/common/lf_queue.h - TCP and multicast
Chapter12/common/tcp_socket.cpp
Other components
- Trading client
- Exchange network
- Market-data feed
Connections 30
- Trading client → Trading entry: starts
- Trading entry → Trade engine: starts
- Market-data feed → Market consumer: publishes
- Market consumer → Lock-free queues: writes updates
- Lock-free queues → Trade engine: supplies updates
- Trade engine → Local book: applies updates
- Trade engine → Position keeper: updates position
- Trade engine → Feature engine: updates features
- Trade engine → Market maker: dispatches events
- Trade engine → Liquidity taker: dispatches events
- Market maker → Order manager: requests orders
- Liquidity taker → Order manager: requests orders
- Order manager → Risk manager: checks orders
- Trade engine → Lock-free queues: writes requests
- Lock-free queues → Order gateway: supplies requests
- Order gateway → TCP and multicast: sends orders
- TCP and multicast → Order server: carries requests
- Exchange entry → Order server: starts
- Order server → FIFO sequencer: sequences requests
- FIFO sequencer → Matching engine: dispatches requests
- Matching engine → Exchange book: updates book
- Matching engine → Map book option: uses alternative
- Matching engine → Lock-free queues: writes responses
- Lock-free queues → Order gateway: supplies responses
- Matching engine → Lock-free queues: writes market updates
- Lock-free queues → Market publisher: supplies updates
- Market publisher → TCP and multicast: publishes feed
- Market publisher → Snapshot synthesizer: synthesizes snapshots
- TCP and multicast → Market-data feed: delivers feed
- Order server → Exchange network: serves clients