Skip to content

subhande/system-design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Design and Architecture Projects and Experiments

This repository contains a variety of projects that focus on system design, services, and utilities. Below is an organized summary of each project, providing insight into their functionality and goals. 🌟🌟🌟

Table of Contents

Connection pooling is an essential design pattern for efficient database management. It minimizes the cost of creating and closing connections by maintaining a pool of reusable connections, which significantly enhances performance and optimizes resource use. 🎯🎯🎯

Database sharding divides a large database into smaller, more manageable segments called shards. Each shard operates as an independent database containing a portion of the data. Sharding is crucial for improving scalability and performance by distributing data across multiple servers. ⚡⚡⚡

This project demonstrates a log streaming service implemented using FastAPI. Users can initiate deployments and view real-time logs through Server-Sent Events (SSE), enabling continuous updates without requiring the client to repeatedly poll the server. 📝📝📝

This project contains examples and implementations of message brokers, including RabbitMQ and Kafka. These tools are explored for their roles in facilitating asynchronous communication and task management between services. 🛠️🛠️🛠️

A detailed guide to configuring a MySQL read replica with Docker. This project explains the process of setting up primary and replica MySQL containers, configuring replication, and verifying synchronization between the databases. 📚📚📚

This project replicates an EC2 instance status check service using short and long polling. It provides a practical demonstration of polling mechanisms, showcasing how clients can retrieve instance statuses effectively through either method. 🔍🔍🔍

This system manages seat allocation for multiple airlines and flights, addressing concurrency challenges during booking. Various approaches to seat assignment, such as sequential and parallel strategies with and without locking mechanisms, are evaluated for efficiency. ✈️✈️✈️

This project investigates SQL locking mechanisms, focusing on how they maintain data consistency during concurrent access. Understanding these techniques allows developers to design systems that are both reliable and high-performing under concurrent workloads. 🔒🔒🔒

A relational database is used to implement a Key-Value (KV) store with functionalities like adding key-value pairs with expiration times, retrieving values, and clearing expired keys. The application is built in Go and highlights efficient use of an RDBMS for KV store operations. 🔑🔑🔑

This project develops a load balancer that distributes requests across backend servers, ensuring high availability and efficient resource utilization. It focuses on L4 (Transport Layer) load balancing, which directs traffic based on network and transport layer information. ⚖️⚖️⚖️

This project demonstrates the implementation of remote locking mechanisms using Redis and Go. It includes both single-instance and quorum-based distributed locks, offering solutions for synchronization in distributed systems. 🔗🔗🔗

This project explores methods for generating unique identifiers in distributed systems. Various strategies are compared for their scalability, reliability, and performance under different conditions. 🆔🆔🆔

A performance comparison between UUIDs and auto-increment IDs for database insertion operations. The analysis evaluates their suitability for scalability and efficiency in systems requiring high throughput. 📊📊📊

This experiment contrasts two pagination methods, LIMIT OFFSET and Cursor-Based Pagination, using a dataset with millions of rows. Results highlight the advantages of cursor-based pagination for efficient data retrieval at scale. 📖📖📖

This analysis examines two MySQL conflict-resolution statements, ON DUPLICATE KEY UPDATE and REPLACE INTO, focusing on their performance in high-concurrency environments and evaluating their trade-offs in specific use cases. 🔄🔄🔄

The Hashtag Service offers tools for managing hashtags in posts, including generating posts with hashtags, extracting and counting hashtag occurrences, and storing the data in MongoDB. The system is designed to handle high-volume hashtag processing efficiently. 🏷️🏷️🏷️

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages