Tidbit

System Design

Core concepts behind building scalable, reliable distributed systems. Covers the patterns and trade-offs every backend engineer needs to know.

39 conceptsInteractive diagrams
Horizontal vs Vertical Scaling
Trade-offs between scaling up a single machine versus spreading load across many.
Load Balancing
Distributing incoming requests across servers to maximise throughput and availability.
Auto-scaling
Dynamically adding or removing compute capacity in response to real-time demand.
Rate Limiting
Controlling request rates to protect services from overload and abuse.
SQL vs NoSQL
Choosing between relational and non-relational databases based on data shape and access patterns.
Database Sharding
Partitioning a dataset across multiple nodes to scale writes and storage horizontally.
Replication (Leader–Follower, Multi-Leader)
Keeping copies of data in sync across nodes for durability and read scalability.
CAP Theorem
Why a distributed system can only guarantee two of consistency, availability, and partition tolerance.
ACID vs BASE
Strong transactional guarantees versus eventual-consistency models and when each applies.
Caching Strategies
Cache-aside, write-through, and write-behind patterns for reducing latency and database load.
CDN (Content Delivery Network)
Serving static and dynamic content from edge locations close to users.
Cache Eviction Policies
LRU, LFU, and TTL strategies for deciding what to remove when a cache is full.
Redis Architecture
How Redis stores data in memory, handles persistence, and supports clustering.
DNS Resolution Flow
The recursive lookup chain from a browser query to a resolved IP address.
HTTP vs HTTPS
How TLS adds encryption, authentication, and integrity on top of HTTP.
WebSockets vs HTTP Polling
Full-duplex persistent connections versus repeated polling for real-time data.
REST vs GraphQL vs gRPC
Comparing API paradigms across flexibility, performance, and contract design.
Message Queues vs Event Streams
Point-to-point queues versus persistent, replayable event logs like Kafka.
Pub/Sub Pattern
Decoupling producers and consumers through a topic-based broadcast model.
Kafka Architecture
Topics, partitions, consumer groups, and how Kafka achieves high-throughput durability.
Dead Letter Queues
Capturing messages that fail repeated processing for later inspection and replay.
API Gateway Pattern
A single entry point that handles routing, auth, rate-limiting, and protocol translation.
Service Mesh
Handles service-to-service communication, observability, and security via a dedicated infrastructure layer.
Circuit Breaker Pattern
Stops calling a failing service to give it time to recover and prevent cascade failures.
Saga Pattern
Manages distributed transactions across services using a sequence of compensating actions.
Fault Tolerance & Redundancy
Designing systems that continue operating correctly when components fail.
Failover Strategies
Automatically switching to a standby system when the primary becomes unavailable.
Chaos Engineering
Deliberately injecting failures to find weaknesses before they cause production incidents.
SLA / SLO / SLI
Defining and measuring reliability commitments: service level agreements, objectives, and indicators.
Consistent Hashing
Distributing keys across nodes so that only a fraction of keys move when the cluster changes.
Consensus (Raft Algorithm)
How distributed nodes agree on a single value despite failures, as implemented in Raft.
Distributed Transactions (2PC)
Coordinating an atomic commit across multiple databases using two-phase commit.
Vector Clocks
Tracking causality in distributed systems to detect concurrent updates.
Logging vs Metrics vs Tracing
The three telemetry types and when each gives you the clearest view of system behaviour.
The Three Pillars
How logs, metrics, and traces work together to form a complete observability picture.
Alerting Pipelines
Routing, de-duplicating, and escalating alerts to reach the right on-call engineer fast.
OAuth 2.0 / JWT Flow
Delegated authorization and stateless identity tokens for securing APIs.
Rate Limiting Patterns
Token bucket, leaky bucket, and sliding window algorithms for throttling requests.
Zero Trust Architecture
Never trust, always verify: securing systems by treating every request as untrusted.