Skip to main content

Command Palette

Search for a command to run...

100 System Design Concepts Explained Simply

Updated
7 min readView as Markdown
B
Senior Software Architect with 30+ years of experience building enterprise systems using Java, Spring Boot, and cloud-native technologies.

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.

More from this blog

B

Bill LIao's Blog

137 posts

A technical blog on modern backend development, software architecture, and practical AI agent workflows