System Design

System Design — Page 20 of 21

Browsing page 20 of 21 — 243 articles on system design.

Designing a Notification System: Push, Email, SMS, and In-App Delivery at Scale
System Design ·

Designing a Notification System: Push, Email, SMS, and In-App Delivery at Scale

A production-focused guide to building a multi-channel notification system. Covers event ingestion, preference routing, channel delivery, template rendering, deduplication, rate limiting per user, retry and fallback chains, and observability with TypeScript throughout.

Retry Patterns in Distributed Systems: Exponential Backoff, Jitter, and Dead Letter Queues
System Design ·

Retry Patterns in Distributed Systems: Exponential Backoff, Jitter, and Dead Letter Queues

Most retry logic in production is wrong in the same two ways: it retries too aggressively and it retries things that will never succeed. This guide covers immediate, fixed delay, exponential backoff, and jitter strategies with TypeScript implementations, idempotency requirements, circuit breaker integration, dead letter queues, and retry budgets.

How Load Balancers Work: Algorithms, Health Checks, and Scaling Patterns
System Design ·

How Load Balancers Work: Algorithms, Health Checks, and Scaling Patterns

A deep dive into load balancing algorithms, health check design, session persistence, L4 vs L7 tradeoffs, and how to scale the load balancer itself. With TypeScript examples for application-layer balancing.

Idempotency Keys in Distributed APIs: Preventing Double Charges and Phantom Orders
System Design ·

Idempotency Keys in Distributed APIs: Preventing Double Charges and Phantom Orders

Practical architecture for implementing idempotency keys in high-scale APIs, including schema design, race-free request handling, TTL strategy, and failure-mode recovery patterns with TypeScript examples.

The Saga Pattern: Coordinating Distributed Transactions Without Two-Phase Commit
System Design ·

The Saga Pattern: Coordinating Distributed Transactions Without Two-Phase Commit

Two-phase commit is a distributed systems trap. The saga pattern is how real production systems coordinate multi-service transactions. This guide covers choreography vs orchestration, compensation logic, failure handling, idempotency, and a full e-commerce order flow in TypeScript.

Distributed Cron Jobs at Scale: Designing Reliable Schedulers for Multi-Region Systems
System Design ·

Distributed Cron Jobs at Scale: Designing Reliable Schedulers for Multi-Region Systems

A practical system design guide to building distributed cron infrastructure, covering clock skew, leader election, sharding strategies, exactly-once versus at-least-once execution, idempotency, retries, backpressure, and multi-region failover.

Distributed Locks with Redis: Preventing Double Processing in Job Workers
System Design ·

Distributed Locks with Redis: Preventing Double Processing in Job Workers

A practical guide to designing distributed locks with Redis for background jobs, including failure modes, lock renewal, fencing tokens, and production-ready TypeScript implementation patterns.

Event-Driven SaaS with the Outbox Pattern: Reliable Events Without Dual Writes
System Design ·

Event-Driven SaaS with the Outbox Pattern: Reliable Events Without Dual Writes

Publishing domain events directly from app code often causes lost messages and inconsistent state. Learn how to implement the outbox pattern in a SaaS architecture with practical TypeScript examples, delivery workers, retries, and observability.

How Caching Works: Strategies, Patterns, and Pitfalls for Production Systems
System Design ·

How Caching Works: Strategies, Patterns, and Pitfalls for Production Systems

Cache-aside, read-through, write-behind, stampede prevention, TTL tuning, and the invalidation problem explained with TypeScript examples and honest tradeoffs. A practical guide to distributed caching in production.

Pragmatic Service Decomposition: When and How to Split Your Monolith
System Design ·

Pragmatic Service Decomposition: When and How to Split Your Monolith

A senior engineer's guide to service decomposition that starts with the real question: should you split at all? Covers concrete extraction signals, boundary identification techniques, data ownership strategies, and incremental migration patterns with TypeScript examples.

The Service Decomposition Playbook: Extracting Services Without Breaking Production
System Design ·

The Service Decomposition Playbook: Extracting Services Without Breaking Production

A step-by-step execution guide for extracting services from a running monolith. Covers dependency mapping, API contract design, dual-write migration, traffic cutover patterns, rollback planning, and operational readiness checklists with TypeScript examples.

Designing a URL Shortener: From Interview Diagram to Production Reality
System Design ·

Designing a URL Shortener: From Interview Diagram to Production Reality

A production-focused system design walkthrough for building a URL shortener that stays fast, safe, and observable under real traffic, with practical TypeScript examples and clear tradeoffs.