Skip to main content

Component explorer

The vocabulary of system design. 19 components, each with a comprehensive why/how/when/failure/alternatives story.

Take the deep tutorial

Every component in one long page, in a suggested reading order — beginner to production in a single tutorial.

Start the tutorial

Load Balancer

Distributes incoming traffic across a pool of servers for scale and fault tolerance.

Open

API Gateway

Single entry point that handles auth, rate limiting, routing, and protocol translation for downstream services.

Open

CDN (Content Delivery Network)

A globally distributed cache that serves static and cacheable dynamic content close to the user.

Open

Redis

An in-memory key-value store used for caching, pub/sub, rate limiting, distributed locks, and simple queues.

Open

SQL Database

A row-oriented, ACID-compliant relational database — the default for transactional workloads.

Open

MySQL

The world's most-deployed open-source relational database — clustered PK index, InnoDB MVCC, Vitess for sharding at billions-of-rows scale.

Open

PostgreSQL

The extensible, standards-compliant relational database — MVCC via xmin/xmax, richest type system in SQL, extensions from PostGIS to pgvector.

Open

NoSQL Database

Umbrella for document, wide-column, and key-value stores optimized for horizontal scale over strict schema.

Open

Kafka

A distributed, partitioned, replicated commit log for event streaming, high-throughput ingest, and decoupled services.

Open

Message Queue

Async task queue that decouples producers from consumers and smooths bursts. Each message is processed exactly once (per-message ACK model).

Open

Object Storage (S3, GCS, Azure Blob)

Durable, cheap, flat-namespace storage for blobs — images, videos, backups, logs, and any large binary object.

Open

Search Engine (Elasticsearch, OpenSearch, Meilisearch)

Inverted-index-based full-text and structured search — the right tool for 'find me records matching this query' when SQL LIKE isn't fast enough.

Open

Stream Processor (Flink, Kafka Streams, Spark Structured Streaming)

Continuous computation over event streams — windowed aggregations, joins, ML features, and event-driven derived views.

Open

Rate Limiter

Enforces per-caller (per-user, per-IP, per-tenant) request budgets to protect downstream systems from abuse and overload.

Open

Scheduler (cron, Airflow, Temporal timers)

Runs jobs at a time or interval — the simplest form of eventual asynchronous computation.

Open

Workflow Engine (Temporal, Cadence, AWS Step Functions)

Orchestrates long-running, stateful multi-step processes — the right tool when a business flow involves many services and can span days.

Open

Distributed Lock (ZooKeeper, etcd, Redis Redlock)

Cross-node mutual exclusion — 'only one node can do this at a time' when you can't rely on a single-node lock.

Open

Service Discovery (Consul, etcd, DNS-based)

How services find each other in a dynamic fleet — because IPs change, nodes come and go, and hardcoding is a losing game.

Open

Distributed Database (DynamoDB, Cassandra, Spanner)

Horizontally-scaled database with automatic partitioning and replication — the answer when one node can't hold the data or the traffic.

Open