The Week-by-Week Syllabus
This path is designed to incrementally build your system design expertise through practical application and problem-solving.
Week 1: Microservices Fundamentals
What to learn: Key principles of microservices architecture, RESTful APIs, and service discovery using tools like Eureka.
Why this comes before the next step: Understanding microservices is crucial as it lays the groundwork for building modular, scalable applications.
Mini-project/Exercise: Design a simple e-commerce service using microservices architecture and implement API endpoints.
Week 2: Load Balancing and Caching
What to learn: Techniques for load balancing using NGINX and caching strategies with Redis.
Why this comes before the next step: Effective load balancing and caching improve system performance and are vital in high-traffic scenarios.
Mini-project/Exercise: Implement load balancing for your e-commerce service and integrate caching for product data.
Week 3: Data Storage Solutions
What to learn: Comparison of SQL vs. NoSQL databases, focusing on MongoDB and Cassandra.
Why this comes before the next step: Knowing how to choose the right database is essential for designing storage solutions that meet application needs.
Mini-project/Exercise: Refactor your e-commerce service to use MongoDB for product storage.
Week 4: Event-Driven Architecture
What to learn: Concepts of event-driven architecture, message brokers with Kafka, and event sourcing.
Why this comes before the next step: Event-driven systems are crucial for building scalable applications that can handle real-time data flows.
Mini-project/Exercise: Create an event-driven component in your service to notify users of order updates.
Week 5: Performance Testing and Optimization
What to learn: Implementing performance testing with Apache JMeter and optimization strategies.
Why this comes before the next step: Testing ensures your system can handle expected loads and identifies bottlenecks before deployment.
Mini-project/Exercise: Conduct performance tests on your e-commerce service and identify areas for optimization.
Week 6: Presentation and Trade-Off Analysis
What to learn: Best practices for presenting system designs and articulating design trade-offs.
Why this comes before the next step: The ability to communicate your design decisions clearly is critical in interviews and real-world scenarios.
Mini-project/Exercise: Prepare a full presentation of your e-commerce service architecture, highlighting key decisions and trade-offs made.