System Design – 100+ Lab Exercises (Basic, Intermediate, Advanced)

🔰 Basic Level (30+ Exercises)

 

Goal: Understand foundational system design principles, components, and communication models.

 

Core Concepts

  • Define monolithic vs microservices architecture with examples.

  • Design a simple URL shortener.

  • Model a basic CRUD API with REST.

  • Explain client-server architecture.

  • Simulate stateless vs stateful services.

  • Explore Synchronous vs Asynchronous communication.

System Components

  • Draw and label components of a web application stack (frontend, backend, DB).

  • Diagram a three-tier architecture (presentation, logic, storage).

  • Design a simple authentication system with sessions.

  • Identify bottlenecks in a naive single-server system.

Networking & Protocols

  • Design a TCP-based chat application prototype.

  • Simulate load balancing with round-robin algorithm.

  • Compare HTTP vs WebSocket for live updates.

  • Build a simple RESTful API with JSON payloads.

Storage & Database Basics

  • Choose between SQL vs NoSQL for a blog system.

  • Model ER diagram for a task management system.

  • Implement database sharding simulation.

  • Design a read replica architecture.


 

🚀 Intermediate Level (40+ Exercises)

 

Goal: Architect scalable, resilient systems with caching, messaging, and horizontal scaling.

 

Caching & CDN

  • Integrate Redis for caching API responses.

  • Simulate a cache eviction policy (LRU, LFU).

  • Design a CDN for static content delivery.

  • Discuss write-through vs write-back caching.

Messaging & Queues

  • Build a job queue using RabbitMQ/Kafka.

  • Simulate asynchronous order processing.

  • Design rate limiting using token bucket algorithm.

  • Implement a notification service with pub-sub model.

Scalability & Load

  • Design a horizontal scaling strategy for a file upload service.

  • Simulate auto-scaling with load spikes.

  • Build a health check system for microservices.

  • Implement a circuit breaker pattern.

Security & Access

  • Design an OAuth 2.0 flow for third-party login.

  • Simulate JWT token verification.

  • Create role-based access control (RBAC) model.

  • Secure an API using API gateway and throttling.

Data Consistency & Availability

  • Design eventual consistency for a replicated DB.

  • Implement a distributed lock mechanism.

  • Use quorum-based reads/writes.

  • Compare CAP theorem trade-offs.


 

🧠 Advanced Level (40+ Exercises)

 

Objective: Architect distributed, fault-tolerant systems for large-scale and real-time applications.

 

System Design Problems

  • Design YouTube-like video streaming service.

  • Design WhatsApp messaging system.

  • Architect Uber ride-matching system.

  • Design a real-time multiplayer game backend.

  • Design Instagram backend with photo delivery and follower feed.

  • Create scalable search engine architecture.

Distributed Systems

  • Simulate Leader election in distributed nodes.

  • Implement consistent hashing for partitioning.

  • Build event sourcing pipeline.

  • Explain Paxos vs Raft consensus protocols.

Data Engineering & Analytics

  • Design a real-time analytics system.

  • Build a data lake and ETL pipeline.

  • Create a log aggregation system (e.g., ELK stack).

  • Design a dashboard for monitoring 10k+ services.

High Availability

  • Implement failover mechanism.

  • Design multi-region deployment strategy.

  • Discuss RTO vs RPO in disaster recovery.

  • Build a global load balancer architecture.

Observability

  • Implement log tracing across microservices.

  • Design a metrics monitoring stack (Prometheus + Grafana).

  • Build alerting mechanisms with SLO thresholds.

  • Use distributed tracing (Jaeger/OpenTelemetry).


 

🧪 Capstone Projects (Choose 2–3)

 

  • Design a Scalable Food Delivery Platform (Swiggy/Zomato style)

  • Build a Scalable Video Conferencing System (Zoom style)

  • Create a High-Frequency Trading Platform (Stock ticker simulator)

  • Design an IoT Data Ingestion Platform (MQTT + Cloud + Analytics)

  • Build a Scalable Microservices E-commerce System


 

Tools & Technologies

 

  • Load Testing: Apache JMeter, k6

  • Architecture Diagrams: Draw.io, Lucidchart

  • Infrastructure as Code: Terraform, AWS CDK

  • Containerization & Orchestration: Docker, Kubernetes

  • CI/CD Tools: Jenkins, GitHub Actions, ArgoCD

Scroll to Top