This is a concurrent matching engine project built in Golang. This project aims to maximise the concurrent execution of different orders.
- After cloning the project, run the following line to build
make all
- The engine executable is found in
./build/engine
The concurrent matching exchange consists of three main components:
- Engine: The matching engine responsible for handling connections and orders.
- OrderBook: Manages the overall order book (buy and sell side), handling incoming orders and sending orders to the correct side.
- Prices: Represents either the buy (bids) or sell (asks) side, maintaining a priority queue (heap) of orders based on price and time.
- Cleanup
OrderBookRequest
. - The use of
req.Done()
.