Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Unlock the Secrets of Scalable System Design
Rating: 3.9 out of 5(85 ratings)
263 students

Unlock the Secrets of Scalable System Design

Mastering High-Level Architecture and System Design Principles.
Created byTanmay Varshney
Last updated 3/2024
English

What you'll learn

  • Understand the fundamentals of system design and architecture.
  • Explore high-level design principles used in building scalable systems.
  • Develop adaptable and resilient software solutions capable of handling complex challenges.
  • Apply learned concepts to real-world scenarios through comprehensive case studies.
  • Prepare effectively for system design interviews and career advancement opportunities in software engineering.

Course content

1 section12 lectures1h 20m total length
  • Introduction3:52

    Learn the basics of scalable system design, focusing on reliability, scalability, and maintainability. Explore fault tolerance, backups, monitoring, testing, and abstractions that help systems stay reliable, scalable, and maintainable.

  • Load Balancers6:43

    Learn how load balancers distribute client requests across web servers, application servers, and databases to improve responsiveness and availability, using health checks and algorithms like round-robin.

  • Caching3:46

    Apply caching to store frequently requested data in a local cache, reducing database calls and latency while improving throughput through locality of reference.

  • Types of Caches4:30

    Explore cache strategies such as write-through, write-behind, and write-around, weighing their trade-offs in latency, consistency, and data freshness for scalable systems.

  • Cache Eviction Policies3:13

    Implement cache eviction policies in scalable system design by examining least recently used, least frequently used, and most recently used strategies to replace data based on future access patterns.

  • Data Partitioning12:42

    Explore data partitioning techniques, including vertical and horizontal partitioning, and learn how sharding distributes data across shards to enable horizontal scaling and reduce the single point of failure.

  • Data Redundancy6:52

    Explore data replication and redundancy to improve reliability, availability, and reduced latency, while examining shared nothing architecture and master-slave replication trade-offs, including more storage, update costs, and data consistency.

  • SQL Vs NoSQL11:18

    Explore relational vs non-relational databases, including RDBMS, key-value, document, columnar, and graph stores, and learn when to scale horizontally for performance and flexibility.

  • CAP Theorem3:35

    Explain the cap theorem in distributed systems by showing how consistency, availability, and partition tolerance trade off, letting you pick two of three.

  • Consistent Hashing11:44

    Explains consistent hashing as a scalable approach for distributed hash tables, using a ring of servers and virtual replicas to minimize key remapping when nodes join or leave.

  • Message Queues5:02

    Learn how message queues enable asynchronous communication between producers and consumers, decoupling applications, preserving order, and persisting messages to prevent data loss.

  • CDN7:19

    Understand how a content delivery network (cdn) uses globally distributed points of presence to replicate content near users, reducing latency and avoiding a single point of failure.

Requirements

  • Basic computer science fundamentals

Description

Delve into the intricacies of system design with our comprehensive course tailored for aspiring software engineers. Explore the secrets behind the seamless operation of tech giants like Google, Facebook, and Netflix, and discover how to design robust systems capable of handling countless requests effortlessly, 24/7. In today's digital age, the ability to craft scalable architectures is paramount, and this course equips you with the essential skills to excel in this domain.

Why Learn System Design?

  • Understand the architecture behind tech giants, mastering both high and low-level design principles.

  • Gain expertise in ensuring uninterrupted functionality, a crucial skill in today's fast-paced tech landscape.

  • Enhance your career prospects by mastering the art of designing scalable systems, a coveted skill in software engineering.

What You'll Learn:

  1. Fundamentals of System Design: Delve into the basics of system design, laying a strong foundation for advanced concepts.

  2. Real-World Case Studies: Apply your knowledge to practical scenarios, exploring comprehensive case studies.

  3. Industry-Standard Principles: Learn essential low-level design principles used in the tech industry, ensuring you're prepared for any challenge.

Course Highlights:

  • Flexibility to use Python, Java, or C# for solution development.

  • Comprehensive coverage of architecture, system design, microservices, and high-level design principles.

  • Perfect for software engineers preparing for interviews or seeking to enhance their system design skills.

Join us and embark on a journey to become a master of scalable system design.

#architecture #systemDesign #microservices #highLevelDesign

Who this course is for:

  • Aspiring software engineers seeking to enhance their understanding of system design and architecture.
  • Professionals looking to master the art of building scalable and resilient software systems.
  • Students preparing for software engineering interviews, particularly those focusing on system design.
  • Anyone interested in advancing their career in software development by mastering high-level design principles.
  • Individuals aiming to deepen their knowledge of architecture, microservices, and system scalability for practical application in real-world scenarios.