114 System Design Concepts to Get Ahead of 99% of Engineers

Source: LinkedIn post by Neo Kim

Foundational

  1. Scalability
  2. Availability
  3. Reliability
  4. Latency
  5. Throughput
  6. Capacity

Architecture Patterns

  1. Client-Server
  2. Microservices
  3. Monolith
  4. Event-Driven
  5. CQRS
  6. Event Sourcing
  7. Service Mesh
  8. Sidecar
  9. BFF (Backend for Frontend)
  10. Strangler Pattern

APIs & Communication

  1. API Design
  2. REST
  3. GraphQL
  4. gRPC
  5. WebSockets
  6. WebRTC
  7. Sync vs Async
  8. Message Queue
  9. Pub/Sub

Database

  1. Database
  2. SQL vs NoSQL
  3. Indexing
  4. Denormalization
  5. ACID
  6. BASE
  7. LSM Trees
  8. B-Trees
  9. Merkle Trees

Data Storage & Processing

  1. Data Lake
  2. Data Warehouse
  3. ETL
  4. Data Pipeline
  5. Batch Processing
  6. Stream Processing
  7. MapReduce
  8. Materialized View
  9. Query Optimization
  10. Full-Text Search
  11. Time Series
  12. Vector DB

Data Structures for Scale

  1. Bloom Filter
  2. HyperLogLog

Caching

  1. Caching
  2. Cache Invalidation
  3. CDN
  4. CDN Caching
  5. Cache Stampede
  6. Cache Warming

Load & Traffic Management

  1. Load Balancing
  2. Rate Limiting
  3. Load Shedding
  4. Autoscaling
  5. Backpressure
  6. Circuit Breaker
  7. Bulkhead
  8. Connection Pooling

Deployment & Release

  1. Blue-Green
  2. Canary Release
  3. Feature Flags

Resilience & Fault Tolerance

  1. Fault Tolerance
  2. High Availability
  3. Retry Logic
  4. Timeout
  5. Idempotency

Distributed Systems

  1. CAP Theorem
  2. Consistency Models
  3. Replication
  4. Partitioning
  5. Sharding
  6. Consensus
  7. Leader Election

Network & Infrastructure

  1. DNS
  2. Service Discovery
  3. API Gateway

Security

  1. Authentication
  2. Authorization
  3. RBAC
  4. SSO
  5. Secrets Management
  6. Encryption
  7. Checksum
  8. Erasure Coding

Observability

  1. Observability
  2. Logging
  3. Metrics
  4. Tracing
  5. Correlation ID
  6. Monitoring
  7. Alerting

Data Compression & Serialization

  1. Data Compression
  2. Serialization
  3. Deserialization

Additional Concepts (16 more)

99-114. (See full breakdown in linked parts below)


Deep dives:

By Neo Kim — nk.systemdesign.one