# System Design 101 ## Docs - [Design Patterns](https://mintlify.wiki/ByteByteGoHq/system-design-101/architecture/design-patterns.md): Master essential design patterns to write cleaner, more maintainable, and reusable code. - [Microservices Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/architecture/microservices.md): Learn how to design, build, and scale microservices-based systems with industry best practices. - [Scalability Strategies](https://mintlify.wiki/ByteByteGoHq/system-design-101/architecture/scalability.md): Master the art of scaling systems to handle millions of users with proven strategies and techniques. - [Software Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/architecture/software-architecture.md): Master the fundamentals of software architecture patterns and design principles for building robust, scalable systems. - [Airbnb Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/airbnb.md): Explore Airbnb architectural evolution from monolith to Service-Oriented Architecture supporting 1.5 billion guests across 200+ countries. - [Designing a Chat Application](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/chat-application.md): Learn how to design a scalable chat application like WhatsApp, Facebook Messenger, or Discord. - [Discord Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/discord.md): Learn how Discord evolved its message storage from MongoDB to Cassandra to ScyllaDB to handle trillions of messages at scale. - [Designing Google Maps](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/google-maps.md): Learn how to design a simplified version of Google Maps with location services, map rendering, and navigation. - [Netflix Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/netflix.md): Deep dive into Netflix architecture, tech stack, and evolution from monolith to federated gateway serving 200+ million subscribers. - [Designing a Payment System](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/payment-system.md): Explore the architecture and flow of a production-grade payment processing system. - [Designing a Stock Exchange](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/stock-exchange.md): Explore the architecture of a low-latency stock exchange system and how it achieves microsecond performance. - [Twitter/X Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/twitter.md): Explore Twitter architecture evolution, tech stack, and recommendation system serving 400+ million users with real-time updates. - [Uber Architecture](https://mintlify.wiki/ByteByteGoHq/system-design-101/case-studies/uber.md): Explore Uber tech stack and architecture evolution powering real-time transportation across 10,000+ cities worldwide. - [API and Web Development](https://mintlify.wiki/ByteByteGoHq/system-design-101/concepts/api-web-development.md): Learn how APIs enable web development by providing standardized protocols for data exchange between different parts of web applications. - [Caching & Performance](https://mintlify.wiki/ByteByteGoHq/system-design-101/concepts/caching-performance.md): Learn to improve the performance of your system by caching data with these visual guides. - [Cloud & Distributed Systems](https://mintlify.wiki/ByteByteGoHq/system-design-101/concepts/cloud-distributed-systems.md): Learn the fundamental concepts, best practices, and real-world examples of cloud computing and distributed systems. - [Database and Storage](https://mintlify.wiki/ByteByteGoHq/system-design-101/concepts/database-storage.md): Understand the different types of databases and storage solutions and how to choose the right one for your application. - [Security](https://mintlify.wiki/ByteByteGoHq/system-design-101/concepts/security.md): Guides on security concepts and best practices for system design. Learn how to protect your system from unauthorized access, data breaches, and other security threats. - [API Gateway](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/api/api-gateway.md): Learn about API Gateway patterns, key functions, use cases, and how they manage API traffic in microservices architectures. - [GraphQL](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/api/graphql.md): Master GraphQL query language, understand its benefits over REST, and learn adoption patterns for modern applications. - [gRPC](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/api/grpc.md): Explore gRPC, a high-performance RPC framework using Protocol Buffers and HTTP/2 for efficient microservices communication. - [HTTP Protocols](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/api/http-protocols.md): Explore the evolution of HTTP from HTTP/1 to HTTP/3, including features, performance improvements, and use cases. - [Load Balancer](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/api/load-balancer.md): Learn about load balancers, distribution algorithms, types, use cases, and best practices for scalable systems. - [REST API](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/api/rest-api.md): Learn REST API principles, HTTP methods, design patterns, and best practices for building robust web services. - [Cache Eviction Policies](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/caching/cache-eviction.md): Understand cache eviction strategies including LRU, LFU, FIFO, TTL, and more to optimize cache performance - [Content Delivery Network (CDN)](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/caching/cdn.md): Learn how CDNs accelerate content delivery through edge caching and distributed servers - [Redis for Caching](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/caching/redis.md): Learn how Redis works as a high-performance in-memory cache and its practical applications - [Caching Strategies](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/caching/strategies.md): Master caching patterns and learn when to use cache-aside, read-through, write-through, write-around, and write-back strategies - [AWS Services Guide](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/cloud/aws-services.md): Comprehensive guide to essential AWS cloud services and their use cases - [Distributed System Patterns](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/cloud/distributed-patterns.md): Essential patterns for building robust distributed systems - [Building Resilient Systems](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/cloud/resilience.md): Patterns and strategies for building fault-tolerant, highly available systems - [Scalability Strategies](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/cloud/scalability.md): Essential strategies and techniques for building scalable systems - [ACID Properties](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/database/acid.md): Understanding ACID properties in database transactions: Atomicity, Consistency, Isolation, and Durability - [CAP Theorem](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/database/cap-theorem.md): Understanding the CAP theorem, its implications for distributed databases, and common misconceptions - [Choosing the Right Database](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/database/choosing-database.md): A comprehensive guide to selecting the right database for your specific needs and use cases - [Database Replication](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/database/replication.md): Learn about database replication patterns, strategies, and best practices for scaling reads and ensuring high availability - [Database Sharding](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/database/sharding.md): A comprehensive guide to database sharding concepts, techniques, and implementation strategies - [SQL vs NoSQL Databases](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/database/sql-nosql.md): Understanding the differences between SQL and NoSQL databases, and when to use each - [CI/CD Pipeline](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/devops/cicd-pipeline.md): Learn about CI/CD pipelines, their stages, and how they automate software delivery for faster, more reliable releases. - [Deployment Strategies](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/devops/deployment-strategies.md): Explore deployment strategies for risk mitigation and seamless application updates - from basic to advanced patterns. - [Docker](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/devops/docker.md): Master Docker containerization - from core concepts to best practices for efficient application deployment. - [Kubernetes (K8s)](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/devops/kubernetes.md): Master Kubernetes container orchestration - from core concepts to deployment patterns and service types. - [Authentication](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/security/authentication.md): Learn about authentication mechanisms and best practices for securing user access to your system. - [Encryption](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/security/encryption.md): Learn about encryption techniques, algorithms, and best practices for securing sensitive data. - [HTTPS and SSL/TLS](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/security/https-ssl.md): Learn how HTTPS, SSL/TLS, and encryption protocols secure data transmission over the internet. - [JSON Web Tokens (JWT)](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/security/jwt.md): Learn about JSON Web Tokens for secure, stateless authentication and authorization in modern applications. - [OAuth 2.0](https://mintlify.wiki/ByteByteGoHq/system-design-101/guides/security/oauth.md): Learn about OAuth 2.0, a powerful authorization framework for secure application interactions. - [How to use this guide](https://mintlify.wiki/ByteByteGoHq/system-design-101/how-to-use.md): Navigate and get the most out of System Design 101 documentation - [DevOps & CI/CD](https://mintlify.wiki/ByteByteGoHq/system-design-101/infrastructure/devops-cicd.md): Learn about DevOps practices, CI/CD pipelines, and modern software delivery workflows - [Kubernetes & Docker](https://mintlify.wiki/ByteByteGoHq/system-design-101/infrastructure/kubernetes-docker.md): Master containerization with Docker and orchestration with Kubernetes - [Monitoring & Logging](https://mintlify.wiki/ByteByteGoHq/system-design-101/infrastructure/monitoring-logging.md): Master system observability through logging, tracing, and metrics - [Essential Algorithms for System Design](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/algorithms.md): Master the key algorithms you need to know before taking system design interviews. - [Common System Design Questions](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/common-questions.md): Practice with the most frequently asked system design interview questions and learn proven solutions. - [Computer Fundamentals](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/computer-fundamentals.md): Essential computer fundamentals concepts tested in system design interviews - [Data Structures](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/data-structures.md): Essential data structures for system design interviews - [How to Ace System Design Interviews](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/how-to-ace.md): Follow this proven 7-step process to excel in any system design interview and impress your interviewers. - [Networking Fundamentals](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/networking.md): Essential networking concepts for system design interviews - [System Design Interviews Overview](https://mintlify.wiki/ByteByteGoHq/system-design-101/interviews/overview.md): Master system design interviews with this comprehensive guide covering key concepts, preparation strategies, and what to expect. - [Welcome to System Design 101](https://mintlify.wiki/ByteByteGoHq/system-design-101/introduction.md): Learn to explain complex systems using visuals and simple terms