The Week-by-Week Syllabus
This week-by-week syllabus will guide you through advanced system design principles, using real-world applications to solidify your understanding.
Week 1: Architectural Patterns
What to learn: Focus on architectural patterns including Microservices, Serverless, and Event-Driven Architecture.
Why this comes before the next step: Understanding various architectural patterns enables you to select appropriate frameworks and structures for different system requirements.
Mini-project/Exercise: Design a simple e-commerce system leveraging a microservices architecture and present your design choices.
Week 2: Database Selection and Design
What to learn: Explore relational vs. non-relational databases and design schema for both PostgreSQL and MongoDB.
Why this comes before the next step: Knowing how to design effective database schemas is crucial for ensuring data consistency and performance.
Mini-project/Exercise: Create a data model for the e-commerce system that efficiently supports product searches and transactions.
Week 3: Scalability Strategies
What to learn: Study horizontal vs. vertical scaling, load balancing, and caching techniques using NGINX and Redis.
Why this comes before the next step: Grasping scalability concepts is essential when preparing for high traffic scenarios during interviews.
Mini-project/Exercise: Implement load balancing for your e-commerce system and simulate high traffic scenarios to test performance.
Week 4: Distributed Systems & Fault Tolerance
What to learn: Dive into distributed systems concepts, addressing CAP theorem, consensus protocols, and fault tolerance.
Why this comes before the next step: Understanding these principles is fundamental for designing resilient systems that can withstand failures.
Mini-project/Exercise: Develop a fault-tolerant messaging system using Apache Kafka and simulate message loss and recovery.
Week 5: Monitoring and Observability
What to learn: Learn about observability practices using tools like Prometheus and Grafana, including logging and tracing.
Why this comes before the next step: Monitoring is key to maintaining system health and understanding performance in production environments.
Mini-project/Exercise: Set up monitoring for your e-commerce system and create dashboards to visualize key metrics.
Week 6: Comprehensive Design Review
What to learn: Synthesize all previous weeks into a final project, focusing on design trade-offs, optimizations, and interview techniques.
Why this comes before the next step: Review will solidify your understanding and prepare you for effectively communicating your designs in an interview context.
Mini-project/Exercise: Prepare a full system design document for your e-commerce project and simulate an interview scenario with a peer.