Posts

API-Gateway Update 1: Implementing the API Gateway

Implementing a C++ API Gateway: Deep Dive into Design and Performance  In this post, we'll explore the implementation of our API gateway, focusing on concurrent processing, caching strategies, and performance optimization. Let's examine the key components and design decisions that create an efficient gateway system. Core Data Structures The gateway's foundation rests on three primary components: LRUCache Implementation class LRUCache { struct Node { std :: string key ; std :: string value ; Node * prev ; Node * next ; } ; std :: unordered_map < std :: string , Node * > cache ; Node * head ; Node * tail ; std :: mutex cacheMutex ; } This design demonstrates several critical considerations: The cache combines a hash map for O(1) lookups with a doubly-linked list for maintaining access order. Mutex protection ensures thread-safe operations while minimizing contention. Node pointers manage th...

Starting My API Gateway Project

Introduction My name is Rawn Kelly, and I'm a Computer Science Major attending Florida State University. Whether you've come to this blog as a recruiter or are just interested in software development, thank you for taking the time to read through a bit of my journey. I was born and raised in Florida, but I've always loved how the internet allows people to transcend their physical location and connect. That somewhat brings me to the purpose of this blog as I document the process of building an API Gateway in C++.

Orderbook Update 2: Implementing the Matching Engine

Implementing a C++ Matching Engine: Deep Dive into Orderbook Design In this post, we'll explore the implementation of an orderbook's matching engine, focusing on data structure choices and algorithmic efficiency. Let's break down the key components and design decisions that make up an efficient matching system. Core Data Structures The heart of our orderbook lies in three main data structures: std :: map < Price , OrderPointers , std :: greater < Price >> bids_ ; std :: map < Price , OrderPointers , std :: less < Price >> asks_ ; std :: unordered_map < OrderId , OrderEntry > orders_ ; This design showcases several key considerations: Price Level Organization : Using   std::map   for bids and asks provides automatic price-time priority through ordered storage. Note the different comparators -   std::greater   for bids (highest price first) and   std::less   for asks (lowest price first). Order Access : The   unord...

Orderbook Update 1: Core Data Structures

 Introduction When implementing an orderbook system, the foundation lies in choosing the right data structures and abstractions. In this post, I'll walk through the key design decisions in building the core components of our C++ orderbook implementation.

Starting My Order book Project

 Introduction My name is Rawn Kelly, and I'm a Computer Science Major attending Florida State University. Whether you've come to this blog as a recruiter or are just interested in software development, thank you for taking the time to read through a bit of my journey. I was born and raised in Florida, but I've always loved how the internet allows people to transcend their physical location and connect. That somewhat brings me to the purpose of this blog as I document the process of building an Order book in C++.