One system. Every day.

Practical system
design, documented.

Clear breakdowns of real-world systems—the requirements, architecture, data model, bottlenecks, and trade-offs that matter.

Latest · #048

Developer infrastructure

Design a CI/CD Platform

Turn source changes into tested deployments with event-driven pipeline DAGs, isolated runners, trusted artifacts, protected environments, progressive delivery, and safe rollback.

16 min readRead document

Archive

All documents

48 notes published
047

Developer infrastructure

Design a Distributed Source Control Hosting Service

Host massive source repositories with content-addressed objects, atomic references, efficient clone and fetch, protected pushes, code review, large-file storage, and regional replication.

046

Developer infrastructure

Design a Package Registry

Publish and distribute immutable software packages with deterministic metadata, dependency resolution, content-addressed blobs, provenance, malware scanning, and global replication.

045

Developer infrastructure

Design a Distributed Build System

Build large codebases quickly with dependency graphs, content-addressed storage, remote caching, hermetic sandboxes, distributed execution, and reproducible artifacts.

044

Network infrastructure

Design a Service Mesh

Secure and control service-to-service traffic with workload identity, mTLS, programmable proxies, resilient routing, policy enforcement, observability, and multi-cluster failover.

043

Security systems

Design a Certificate Authority and PKI System

Issue and validate digital certificates safely with offline roots, hardware-protected signing, automated enrollment, revocation, transparency, and resilient rotation.

042

Network infrastructure

Design a Global DNS Service

Resolve names reliably with anycast authoritative servers, versioned zone distribution, caching, DNSSEC, health-based routing, and layered DDoS protection.

041

Storage systems

Design a Distributed Object Storage System

Store exabytes of immutable objects with partitioned metadata, multipart uploads, erasure coding, read-after-write consistency, background repair, lifecycle tiers, and regional replication.

040

Database systems

Design a Distributed SQL Database

Provide scalable relational transactions with replicated key ranges, MVCC, consensus, distributed SQL execution, secondary indexes, rebalancing, and multi-region placement.

039

Data infrastructure

Design a Data Lakehouse

Combine low-cost object storage with transactional tables, schema evolution, compaction, time travel, governance, and scalable analytical query execution.

038

Data infrastructure

Design a Change Data Capture Platform

Replicate database changes safely with log-based capture, consistent snapshots, ordered partitions, schema evolution, idempotent sinks, and recoverable connector state.

037

Data systems

Design a Vector Database

Store and search billions of embeddings with approximate nearest-neighbor indexes, metadata filtering, sharding, replication, freshness, and predictable multi-tenant performance.

036

Machine learning systems

Design a Machine Learning Model Serving Platform

Deploy and operate models reliably with immutable artifacts, low-latency inference, dynamic batching, accelerator scheduling, autoscaling, canary releases, and drift monitoring.

035

Machine learning systems

Design a Machine Learning Feature Store

Define, compute, discover, and serve trustworthy ML features with point-in-time correct training data, low-latency online reads, and consistent transformation logic.

034

Data systems

Design a Real-Time Analytics Platform

Turn high-volume event streams into fresh, correct dashboards with event-time processing, durable state, replay, tiered storage, and low-latency multidimensional queries.

033

Distributed systems

Design a Durable Workflow Orchestration System

Execute multi-step business processes reliably with event-sourced histories, deterministic replay, durable timers, idempotent activities, signals, and safe code evolution.

032

Cloud platforms

Design a Serverless Functions Platform

Build, isolate, schedule, and scale event-driven functions with low-latency routing, bounded cold starts, reliable triggers, and precise usage metering.

031

Infrastructure systems

Design a Container Orchestration System

Run containerized workloads across large clusters with declarative APIs, constraint-aware scheduling, reconciliation loops, service networking, autoscaling, and safe rollouts.

030

Security systems

Design a Secrets Management System

Store and deliver credentials safely with envelope encryption, workload identity, short-lived leases, automated rotation, strict policy, and auditable recovery.

029

Security systems

Design an Identity and Access Management System

Authenticate people and services, issue secure sessions and tokens, enforce centralized authorization, and preserve auditability across regions and tenants.

028

Observability systems

Design a Distributed Tracing System

Follow requests across services with portable context, adaptive sampling, durable span ingestion, trace assembly, indexed search, and privacy-safe retention.

027

Financial infrastructure

Design an API Metering and Billing System

Turn high-volume usage events into trustworthy quotas, customer-visible meters, rated charges, and auditable invoices without slowing the product path.

026

Observability systems

Design a Centralized Log Aggregation System

Collect, process, retain, and search high-volume application logs with durable ingestion, tiered storage, tenant isolation, and safe handling of sensitive data.

025

Developer infrastructure

Design a Feature Flag Service

Roll out software safely with local flag evaluation, versioned configuration, real-time updates, deterministic targeting, audit logs, and resilient fallbacks.

024

Advertising systems

Design an Ad Serving System

Select and deliver relevant ads in milliseconds while enforcing budgets, pacing, frequency caps, attribution, fraud controls, and accurate billing.

023

Financial systems

Design a Payment Processing System

Build a reliable payment platform with idempotent APIs, an immutable ledger, asynchronous settlement, reconciliation, refunds, and strict security boundaries.

022

Machine learning systems

Design a Recommendation System

Generate and rank personalized content at scale while handling freshness, cold start, feedback loops, experimentation, and safety.

021

Transactional systems

Design an Online Ticket Booking System

Sell scarce seats under extreme contention without overselling, losing reservations, or overwhelming checkout and payment services.

020

Distributed systems

Design a Distributed Lock and Coordination Service

Coordinate ownership across unreliable processes using consensus, leases, fencing tokens, watches, and explicit failure semantics.

019

Search systems

Design a Web Search Engine

Turn a continuously changing web corpus into fast, relevant, and trustworthy search results using distributed indexing and retrieval.

018

Edge infrastructure

Design a Global API Gateway

Route, authenticate, protect, and observe API traffic at the edge without turning the gateway into a bottleneck or failure amplifier.

017

Storage systems

Design a Distributed Key-Value Store

Store and retrieve data across many machines while balancing partitioning, replication, consistency, availability, and repair.

016

Edge infrastructure

Design a Content Delivery Network

Serve cacheable content close to users while protecting origins, propagating invalidations, and surviving edge and regional failures.

015

Collaborative systems

Design a Real-Time Collaborative Editor

Let many users edit one document concurrently while preserving intent, supporting offline work, and converging after failures.

014

Location-based systems

Design a Ride-Hailing Service

Match riders with nearby drivers in real time while coordinating location updates, trip state, pricing, payments, and safety.

013

Large-scale applications

Design a Social News Feed

Build a personalized, low-latency feed that balances freshness and relevance across billions of posts and follower relationships.

012

Observability systems

Design a Metrics Monitoring and Alerting System

Ingest billions of time-series samples, answer interactive queries, and deliver reliable alerts without drowning operators in noise.

011

Media systems

Design a Video Streaming Platform

Ingest, process, and deliver video globally with adaptive playback, resilient pipelines, and efficient CDN distribution.

010

Storage systems

Design a Cloud File Storage System

Store, synchronize, version, and share files across devices while supporting resumable transfers and regional durability.

009

Real-time systems

Design a Real-Time Chat System

Deliver ordered messages across devices with low latency while supporting presence, offline sync, media, and regional failures.

008

Distributed systems

Design a Distributed Job Scheduler

Run one-time and recurring work reliably across a fleet while handling leases, retries, clock skew, and duplicate execution.

007

Search systems

Design Search Autocomplete

Return relevant query suggestions in milliseconds while supporting ranking, typo tolerance, personalization, and continuous updates.

006

Data-intensive systems

Design a Distributed Web Crawler

Discover and fetch billions of pages while respecting websites, avoiding duplicate work, and keeping the crawl frontier healthy.

005

Distributed systems

Design a Distributed Cache

Serve frequently accessed data in milliseconds while handling sharding, hot keys, invalidation, and node failures.

004

Distributed systems

Design a Distributed Message Queue

Decouple producers and consumers with durable, ordered delivery that scales across partitions and survives failures.

003

Web infrastructure

Design a URL Shortener

Generate compact links, redirect with low latency, and scale reads globally without sacrificing reliability.

002

Distributed systems

Design a Distributed Rate Limiter

Protect APIs consistently across regions while keeping enforcement fast and failure modes predictable.

001

Event-driven systems

Design a Notification System

Deliver email, push, and SMS notifications reliably while respecting preferences, retries, and provider limits.

The premise

Learn one architecture
at a time.

New design documents are published daily. No filler—just constraints, decisions, diagrams, and honest trade-offs.