System Design — Page 17 of 21
Browsing page 17 of 21 — 243 articles on system design.
Designing a Service Mesh: Traffic Routing, Observability, and mTLS for Microservices
A production guide to service mesh architecture covering the sidecar proxy pattern, traffic management at the mesh layer, mutual TLS for zero-trust networking, and distributed tracing propagation. Includes TypeScript examples and honest tradeoffs vs. application-level implementations.
Designing a Social Feed System: Fan-Out Strategies, Ranking, and Real-Time Updates at Scale
A production-focused system design walkthrough for building a social feed at scale. Covers fan-out on write vs. fan-out on read, ranking algorithms, WebSocket push, storage layout, cache warming, and the celebrity problem with concrete TypeScript examples.
Designing an Image Processing Pipeline: Uploads, Thumbnails, and On-the-Fly Transformations at Scale
How to architect a production image pipeline from upload to CDN delivery. Covers presigned upload flows, async thumbnail generation, on-the-fly transformation with CDN caching, storage strategies for S3 and R2, format selection between WebP and AVIF, and the cost tradeoffs between pre-generation and lazy generation.
Usage-Based Billing Architecture: Metering, Aggregation, and Invoice Generation for API Products
A comprehensive guide to building production-grade usage-based billing for API products. Covers the metering pipeline, idempotent event recording, deduplication, real-time vs. batch aggregation, tiered pricing engines, invoice generation, and the observability needed to catch discrepancies before customers do.
Consensus Algorithms Explained: Raft, Paxos, and How Distributed Systems Agree
A deep-dive into distributed consensus: why FLP impossibility and network partitions make agreement hard, how Paxos works and why it's notoriously difficult to implement correctly, how Raft simplifies the problem with leader election and log replication, and when you actually need consensus versus simpler coordination approaches.
Designing a Key-Value Store: Hash Tables, LSM Trees, and Compaction Strategies
A deep technical exploration of how key-value stores work internally. Covers in-memory hash tables, LSM trees with SSTables, write-ahead logs, size-tiered vs leveled compaction, and a decision framework for choosing between Redis, DynamoDB, and RocksDB-based stores.
Designing a Time-Series Database: Storage Engines, Downsampling, and Retention Policies at Scale
A deep technical breakdown of how time-series databases work internally. Covers storage engine choices, write path optimization, out-of-order ingestion, range scan queries, downsampling, tiered retention, cardinality explosions, and when to use a dedicated TSDB versus TimescaleDB.
Back-Pressure in Distributed Systems: Flow Control Patterns That Prevent Cascading Overload
A production guide to back-pressure: why unbounded queues kill services, the four core flow control strategies with TypeScript implementations, back-pressure in Kafka, RabbitMQ, and SQS, HTTP-layer load shedding, reactive streams, and the observability you need to catch overload before it cascades.
Designing a Job Scheduling System: Priority Queues, Fair Scheduling, and Failure Recovery at Scale
Cron plus database polling works until it doesn't. This is a deep dive into production job scheduling: priority queues, weighted fair queuing, job lifecycle state machines, failure recovery with dead letter queues, distributed coordination with fencing tokens, and how systems like BullMQ and Temporal approach the same problems.
Designing a Subscription Billing System: Plans, Usage Metering, Proration, and Dunning
Subscription billing looks like a solved problem until you hit your first proration edge case or dunning retry storm. This guide covers the full architecture: data model for plans, subscriptions, and invoices; usage-based metering; proration logic for mid-cycle plan changes; dunning strategies for failed payments; and Stripe integration patterns in TypeScript.
Designing an Email Delivery System: Templates, Queuing, Deliverability, and Bounce Handling at Scale
A production-focused guide to architecting email delivery: template engines, queue decoupling, provider abstraction, SPF/DKIM/DMARC, bounce handling, suppression lists, and failover patterns.
Designing a Content Delivery Network: Edge Caching, Cache Invalidation, and Origin Shield Patterns
How CDNs work under the hood: edge caching strategies (TTL, stale-while-revalidate, cache keys), cache invalidation patterns (purge, tag-based, surrogate keys), origin shield as an intermediate cache tier, consistent hashing for cache distribution, and TypeScript examples for custom cache logic with Cloudflare Workers.