# madd86/awesome-system-design

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/madd86-awesome-system-design).**

11,695 stars · 1,266 forks · cc0-1.0

## Links

- GitHub: https://github.com/madd86/awesome-system-design
- awesome-repositories: https://awesome-repositories.com/repository/madd86-awesome-system-design.md

## Topics

`distributed-systems` `hadoop-ecosystem` `interview` `message-broker` `microservices` `microservices-architecture` `nosql` `relational-database` `stream-processing`

## Description

This project is a comprehensive learning resource and reference guide for software architecture and distributed systems design. It serves as a structured curriculum for engineers to study fundamental architectural patterns, scalability strategies, and distributed computing theory, specifically tailored to prepare for technical interviews and professional engineering roles.

The repository distinguishes itself by providing a curated collection of industry-standard infrastructure tools and methodologies. It covers the selection and implementation of technologies for data storage, message brokering, stream processing, and load balancing, allowing users to evaluate the trade-offs required to build reliable and high-performance systems.

The resource encompasses a broad range of technical domains, including container orchestration workflows, distributed data storage management, and the design of asynchronous communication channels. It also offers practical exercises and scenarios that allow users to refine their problem-solving skills regarding complex system requirements and architectural constraints.

## Tags

### Education & Learning Resources

- [Curated Learning Resources](https://awesome-repositories.com/f/education-learning-resources/curated-learning-resources.md) — Acts as a curated collection of high-quality documentation and educational materials for self-directed technical study.
- [Reference Guides](https://awesome-repositories.com/f/education-learning-resources/reference-guides.md) — Serves as a comprehensive reference guide that organizes complex technical topics for professional skill acquisition.
- [System Design Interview Preparation](https://awesome-repositories.com/f/education-learning-resources/system-design-interview-preparation.md) — Provides curated educational materials for navigating system design interviews and mastering architectural theory. ([source](https://github.com/madd86/awesome-system-design#readme))
- [Technical Interview Preparation](https://awesome-repositories.com/f/education-learning-resources/professional-development-career/career-development/career-advancement-resources/technical-interview-preparation.md) — Offers structured study materials and practice challenges for preparing for technical interviews and hiring assessments. ([source](https://github.com/madd86/awesome-system-design#readme))

### Repository Format

- [Awesome List](https://awesome-repositories.com/f/repository-format/awesome-list.md) — A community-curated directory that catalogs and links out to other open-source projects, rather than a standalone tool you run yourself.

### Software Engineering & Architecture

- [Distributed Systems Architecture](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems-architecture.md) — Provides a core educational curriculum on the principles and patterns of distributed systems.
- [Distributed Data Management](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems/distributed-data-management.md) — Covers systems focused on the storage, mapping, and consistent replication of data across distributed environments.
- [File System Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/file-system-abstractions.md) — Provides architectural abstractions that decouple high-level application logic from underlying storage state management.
- [Web API Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/web-api-design-patterns.md) — Teaches standardized request and response patterns for building robust network interfaces. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))

### DevOps & Infrastructure

- [Container Orchestrators](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-orchestration-interfaces/container-orchestrators.md) — Covers platforms that automate the deployment, scaling, and management of containerized applications across clusters. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Cluster and Service Orchestration](https://awesome-repositories.com/f/devops-infrastructure/infrastructure/cluster-service-orchestration.md) — Provides comprehensive platforms for managing distributed system health, service discovery, and component orchestration.
- [Message Queues](https://awesome-repositories.com/f/devops-infrastructure/message-queues.md) — Covers infrastructure for asynchronous task buffering, message passing, and reliable event-driven workflow execution.
- [Distributed Data Infrastructure](https://awesome-repositories.com/f/devops-infrastructure/distributed-data-infrastructure.md) — Provides guidance on systems and tools for managing data storage across distributed environments. ([source](https://github.com/madd86/awesome-system-design#readme))
- [Horizontal Scaling Tools](https://awesome-repositories.com/f/devops-infrastructure/horizontal-scaling-tools.md) — Covers patterns for scaling services by adding nodes dynamically to handle high-throughput workloads.
- [Traffic Load Balancers](https://awesome-repositories.com/f/devops-infrastructure/traffic-load-balancers.md) — Covers tools for distributing network traffic across multiple service instances to ensure high availability. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))

### Networking & Communication

- [Message Broker Infrastructure](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure.md) — Details core software and architectural patterns for routing, queuing, and persisting messages between decoupled system components.
- [Message Brokers](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure/message-brokers.md) — Facilitates asynchronous data exchange through message queues to decouple service communication. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Load Balancers](https://awesome-repositories.com/f/networking-communication/load-balancers.md) — Explains systems that distribute network traffic across multiple servers to optimize resource use and ensure high availability.

### Part of an Awesome List

- [System Design Resources](https://awesome-repositories.com/f/awesome-lists/devops/system-design-resources.md) — Comprehensive resources for distributed computing and system design.

### Data & Databases

- [Distributed Computing](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing/distributed-processing-frameworks/distributed-computing.md) — Explains frameworks designed to execute large-scale data analytics and processing tasks across distributed computing clusters. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Stream Processing](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/stream-processing-systems/stream-processing.md) — Covers architectures and frameworks designed for the continuous ingestion, transformation, and analysis of high-velocity data streams. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Declarative Query Languages](https://awesome-repositories.com/f/data-databases/declarative-query-languages.md) — Covers high-level query languages that allow data manipulation without specifying execution steps.
- [Distributed Task Schedulers](https://awesome-repositories.com/f/data-databases/distributed-task-schedulers.md) — Covers systems for orchestrating and distributing complex data processing workflows across computing clusters. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [File Storage Systems](https://awesome-repositories.com/f/data-databases/file-storage-systems.md) — Explains architectures for storing and retrieving data in hierarchical directory structures across distributed nodes. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [In-Memory Data Stores](https://awesome-repositories.com/f/data-databases/in-memory-data-stores.md) — Explains systems that store and manage transient application data directly in system memory for high-performance access.
- [Relational Data Stores](https://awesome-repositories.com/f/data-databases/relational-data-stores.md) — Covers systems relying on relational databases for structured storage and complex query support. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Wide-Column Stores](https://awesome-repositories.com/f/data-databases/wide-column-stores.md) — Explains NoSQL database systems designed for high-scale storage with flexible, dynamic column structures. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Data Ingestion](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-extraction-ingestion/data-ingestion.md) — Covers processes and services that receive, clean, and prepare raw data for entry into a storage system. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Caching](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/caching-performance/caching.md) — Details systems that store frequently accessed data in temporary memory to reduce latency and improve application performance. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Distributed Query Processing](https://awesome-repositories.com/f/data-databases/distributed-query-processing.md) — Provides methods for executing and parallelizing data queries across multiple nodes in a distributed environment. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Document Stores](https://awesome-repositories.com/f/data-databases/document-stores.md) — Explains database systems that store, retrieve, and manage information as semi-structured document objects. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
- [Graph Querying](https://awesome-repositories.com/f/data-databases/graph-querying.md) — Covers languages and tools designed for traversing and querying connected data structures. ([source](https://github.com/madd86/awesome-system-design/blob/master/readme.md))
