# 100 System Design Concepts Explained Simply

**If you can't explain a system design concept in one minute, do you really understand it?**

One of the biggest mistakes engineers make is memorizing system design interview answers instead of understanding the underlying concepts.

Everyone knows words like *load balancing*, *sharding*, *caching*, and *event-driven architecture*. But far fewer people can explain **why** they exist, **when** to use them, and **what trade-offs** they introduce.

Great software architects don't collect buzzwords.

They build a mental model.

This guide explains **100 essential system design concepts** using simple language, making them easier to remember and apply in real-world systems.

* * *

## 1\. Scalability

The ability of a system to handle increasing traffic without significant performance degradation.

* * *

## 2\. Availability

How often a system remains operational and accessible.

* * *

## 3\. Reliability

The probability that a system performs correctly over time.

* * *

## 4\. Latency

The time it takes for a request to receive a response.

* * *

## 5\. Throughput

The number of requests a system can process per second.

* * *

## 6\. Bandwidth

The maximum amount of data that can be transferred over a network.

* * *

## 7\. Fault Tolerance

The ability to continue operating after failures occur.

* * *

## 8\. High Availability (HA)

Designing systems with minimal downtime through redundancy.

* * *

## 9\. Durability

Ensuring data survives crashes and hardware failures.

* * *

## 10\. Consistency

All users see the same data after updates.

* * *

## 11\. Eventual Consistency

Data becomes consistent after a short delay.

* * *

## 12\. Strong Consistency

Every read immediately reflects the latest write.

* * *

## 13\. CAP Theorem

Distributed systems can only fully achieve two of Consistency, Availability, and Partition Tolerance.

* * *

## 14\. Partition Tolerance

The system continues working despite network failures.

* * *

## 15\. ACID

Properties that guarantee reliable database transactions.

* * *

## 16\. BASE

A distributed alternative prioritising availability over strict consistency.

* * *

## 17\. Horizontal Scaling

Adding more servers.

* * *

## 18\. Vertical Scaling

Adding more CPU or memory to one server.

* * *

## 19\. Stateless Service

No user session stored locally.

* * *

## 20\. Stateful Service

Maintains session or user-specific data.

* * *

## 21\. Load Balancer

Distributes traffic across multiple servers.

* * *

## 22\. Reverse Proxy

Receives client requests before forwarding them internally.

* * *

## 23\. CDN

Caches static content closer to users.

* * *

## 24\. Cache

Stores frequently accessed data for faster retrieval.

* * *

## 25\. Cache Aside Pattern

Applications manage cache updates manually.

* * *

## 26\. Write Through Cache

Writes go to cache and database simultaneously.

* * *

## 27\. Write Back Cache

Writes reach the database asynchronously.

* * *

## 28\. Cache Invalidation

Removing outdated cached data.

* * *

## 29\. Cache Stampede

Many requests regenerate the same expired cache.

* * *

## 30\. Cache Penetration

Requests repeatedly query data that doesn't exist.

* * *

## 31\. Database Index

Speeds up searching like a book's index.

* * *

## 32\. Full Table Scan

Reading every database row.

* * *

## 33\. Query Optimisation

Improving SQL performance.

* * *

## 34\. Normalisation

Reducing duplicate data.

* * *

## 35\. Denormalisation

Adding redundancy for faster reads.

* * *

## 36\. Replication

Copying data across servers.

* * *

## 37\. Master-Replica

One server writes, replicas read.

* * *

## 38\. Sharding

Splitting data across multiple databases.

* * *

## 39\. Partitioning

Breaking large tables into smaller pieces.

* * *

## 40\. Data Lake

Stores raw structured and unstructured data.

* * *

## 41\. Data Warehouse

Optimised for analytics.

* * *

## 42\. OLTP

Online transaction processing.

* * *

## 43\. OLAP

Online analytical processing.

* * *

## 44\. Message Queue

Buffers asynchronous communication.

* * *

## 45\. Event Streaming

Continuously processing event data.

* * *

## 46\. Publish-Subscribe

Publishers don't know subscribers.

* * *

## 47\. Event Sourcing

Store events instead of current state.

* * *

## 48\. CQRS

Separate read and write models.

* * *

## 49\. Saga Pattern

Coordinates distributed transactions.

* * *

## 50\. Two-Phase Commit

Ensures distributed transaction consistency.

* * *

## 51\. API Gateway

Single entry point for APIs.

* * *

## 52\. Service Discovery

Services automatically locate one another.

* * *

## 53\. Microservices

Independent deployable services.

* * *

## 54\. Monolith

Entire application deployed together.

* * *

## 55\. Modular Monolith

Single deployment with clear internal boundaries.

* * *

## 56\. Service Mesh

Handles communication between services.

* * *

## 57\. Sidecar Pattern

Adds infrastructure features beside applications.

* * *

## 58\. Circuit Breaker

Stops repeated failures from cascading.

* * *

## 59\. Retry Pattern

Automatically retries failed requests.

* * *

## 60\. Timeout

Limits how long operations wait.

* * *

## 61\. Bulkhead Pattern

Isolates failures into separate resources.

* * *

## 62\. Rate Limiting

Restricts request frequency.

* * *

## 63\. Throttling

Slows traffic when limits are exceeded.

* * *

## 64\. Backpressure

Signals producers to slow down.

* * *

## 65\. Idempotency

Repeated requests produce the same result.

* * *

## 66\. Sticky Session

User consistently reaches the same server.

* * *

## 67\. Session Store

Centralised user session storage.

* * *

## 68\. Authentication

Verifying identity.

* * *

## 69\. Authorisation

Checking permissions.

* * *

## 70\. OAuth 2.0

Delegated access protocol.

* * *

## 71\. JWT

Self-contained authentication token.

* * *

## 72\. SSO

One login for multiple systems.

* * *

## 73\. Encryption

Protecting data using cryptography.

* * *

## 74\. TLS

Secures communication over networks.

* * *

## 75\. Hashing

One-way transformation for integrity.

* * *

## 76\. Observability

Understanding internal system behaviour.

* * *

## 77\. Logging

Recording application events.

* * *

## 78\. Monitoring

Tracking system health.

* * *

## 79\. Metrics

Numerical performance measurements.

* * *

## 80\. Tracing

Following requests across services.

* * *

## 81\. Alerting

Notifying engineers about issues.

* * *

## 82\. Blue-Green Deployment

Switching traffic between two environments.

* * *

## 83\. Canary Deployment

Releasing changes gradually.

* * *

## 84\. Rolling Deployment

Updating servers incrementally.

* * *

## 85\. Feature Flags

Enable features without redeployment.

* * *

## 86\. CI/CD

Automated build, testing and deployment.

* * *

## 87\. Container

Packages applications consistently.

* * *

## 88\. Docker

Popular container platform.

* * *

## 89\. Kubernetes

Container orchestration platform.

* * *

## 90\. Infrastructure as Code

Infrastructure managed through code.

* * *

## 91\. Immutable Infrastructure

Servers are replaced instead of modified.

* * *

## 92\. Autoscaling

Automatically adjusts system capacity.

* * *

## 93\. Disaster Recovery

Recovering after catastrophic failures.

* * *

## 94\. RPO

Maximum acceptable data loss.

* * *

## 95\. RTO

Maximum acceptable downtime.

* * *

## 96\. Edge Computing

Processing data closer to users.

* * *

## 97\. Distributed Lock

Coordinates shared resource access.

* * *

## 98\. Leader Election

Selecting one node to coordinate tasks.

* * *

## 99\. Consensus Algorithm

Multiple nodes agree on a shared state.

* * *

## 100\. System Design

The art of building scalable, reliable, maintainable, and efficient software systems that solve real business problems.

* * *

## Final Thoughts

System design isn't about memorising architecture diagrams.

It's about understanding **trade-offs**.

Every architecture decision improves one aspect while making another more complex.

The best engineers don't ask:

> **"Which technology should I use?"**

They ask:

> **"Which trade-off am I willing to accept?"**

Master these 100 concepts, and you'll have a solid foundation for:

*   System design interviews
    
*   Software architecture
    
*   Backend engineering
    
*   Cloud-native development
    
*   Distributed systems
    
*   Technical leadership
    

Because great architects don't memorise patterns.

**They understand why the patterns exist.**

* * *

**What concept do you think every software engineer should truly understand—but is often misunderstood?**

Let's discuss in the comments.
