Skip to main content
SDMastery

System Design Tradeoffs

20 tradeoff comparisons. Understanding tradeoffs is what separates junior from senior engineers.

Top 15 System Design Tradeoffs

System design is fundamentally about making tradeoffs. There is no perfect architecture — every decision involves choosing between competing concerns.

6 min read

Vertical vs Horizontal Scaling

Vertical scaling (scale up) adds more resources to a single machine. Horizontal scaling (scale out) adds more machines.

6 min read

Concurrency vs Parallelism

Concurrency is dealing with multiple tasks at once (interleaving). Parallelism is doing multiple tasks at once (simultaneously).

6 min read

Long Polling vs WebSockets

Both enable near-real-time communication between client and server. Long polling keeps an HTTP connection open until new data is available.

6 min read

Batch vs Stream Processing

Batch processing handles data in large chunks at scheduled intervals. Stream processing handles data continuously as it arrives.

6 min read

Stateful vs Stateless Design

Stateless services do not store client state between requests — each request is independent.

6 min read

Strong vs Eventual Consistency

Strong consistency guarantees that after a write completes, all subsequent reads return the updated value.

7 min read

Read-Through vs Write-Through Cache

Read-through caches fetch data from the origin on cache miss. Write-through caches update the origin synchronously on every write.

6 min read

Push vs Pull Architecture

In push architecture, the server sends data to clients when events occur (WebSockets, webhooks, push notifications).

6 min read

REST vs RPC

REST organizes APIs around resources (nouns) with standard HTTP methods. RPC organizes APIs around actions (verbs) with custom method names.

6 min read

Synchronous vs Asynchronous Communication

Synchronous communication blocks the caller until the response is received (HTTP request-response).

6 min read

Latency vs Throughput

Optimizing for low latency (fast individual requests) often conflicts with optimizing for high throughput (maximum requests per second).

6 min read

SQL vs NoSQL — How to Choose the Right Database

Relational databases offer ACID transactions, mature tooling, and powerful query languages.

7 min read

When to Choose Monolith vs Microservices

A monolith is a single deployable unit — simple to develop, test, and deploy. Microservices decompose functionality into independently deployable services.

7 min read

TCP vs UDP — Choosing the Right Transport Protocol

TCP provides reliable, ordered delivery with flow control and congestion management. UDP provides raw speed with minimal overhead.

7 min read

Consistency vs Availability

The CAP theorem forces distributed systems to choose between consistency and availability during network partitions.

8 min read

Caching vs Database Reads

Caches deliver sub-millisecond reads from memory but add complexity around invalidation and consistency.

8 min read

Event-Driven vs Request-Driven

Request-driven architectures use synchronous calls where the client waits for a response.

7 min read

Pre-computation vs On-Demand Computation

Pre-computation trades storage and freshness for read speed by calculating results ahead of time.

8 min read

Denormalization vs Normalization

Normalization eliminates data redundancy by decomposing tables and enforcing referential integrity.

8 min read