Skip to main content

System Design Questions

Design a URL Shortener

Requirements:

  • Shorten long URLs
  • Redirect to original URL
  • Track click statistics

Components:

  • API Gateway
  • URL Service (generate short codes)
  • Redis (cache mappings)
  • SQL Database (persistence)
  • Analytics Service

Design a Rate Limiter

Approaches:

  • Fixed Window
  • Sliding Window
  • Token Bucket
  • Leaky Bucket

Implementation:

  • In-memory for single server
  • Redis for distributed systems
  • Consider user ID, IP, API key

Design a Notification System

Components:

  • Message Queue (RabbitMQ/Kafka)
  • Background workers
  • Multiple channels (email, SMS, push)
  • Retry logic
  • Dead letter queue