Learn System Design

Learn System Design

Download on the App Store

Learn System Design episodes

  • Mastering System Design Interview: From Concept to Scale Building Efficient URL Shorteners

    Send us a text

    URL Shortener Designs

    Unlock the secrets to designing a high-performing URL shortener system in our latest episode with Ben at the helm! Get ready to master the essentials that transform a simple idea into a robust tool, essential for platforms with strict character limits like Twitter. We'll walk you through the core elements of creating effective short URLs, from ensuring seamless redirects to setting expiration dates tailored for various industries like marketing firms. Discover the importance of high availability in read-heavy systems, and learn how to craft a service that not only meets but anticipates user demands.

    Dive into the architectural complexities of building a URL shortener that can scale to billions of requests. Ben breaks down the nitty-gritty of data model structuring and the strategic benefits of non-relational databases like Cassandra for horizontal scaling. Learn to harness the power of character hashes and explore innovative ways to keep your URLs unique and efficient. We'll reveal the architectural tactics like adding database replicas and load balancers to maintain system availability and performance. Tune in for a wealth of strategies and insights that promise to elevate your system design skills to new heights!


    Support the show

    Dedicated to the memory of Crystal Rose.
    Email me at [email protected]
    Join the free Discord
    Consider supporting us on Patreon
    Special thanks to Aimless Orbiter for the wonderful music.
    Please consider giving us a rating on ITunes or wherever you listen to new episodes.


    34 min
  • Mastering System Design Interviews: Building Scalable Web Crawlers

    Send us a text

    Web Crawler Designs

    Can a simple idea like building a web crawler teach you the intricacies of system design? Join me, Ben Kitchell, as we uncover this fascinating intersection. Returning from a brief pause, I'm eager to guide you through the essential building blocks of a web crawler, from queuing seed URLs to parsing new links autonomously. These basic functionalities are your gateway to creating a minimum viable product or acing that system design interview. You’ll gain insights into potential extensions like scheduled crawling and page prioritization, ensuring a strong foundation for tackling real-world challenges.

    Managing a billion URLs a month is no small feat, and scaling such a system requires meticulous planning. We’ll break down the daunting numbers into digestible pieces, exploring how to efficiently store six petabytes of data annually. By examining different database models, you’ll learn how to handle URLs, track visit timestamps, and keep data searchable. The focus is on creating a robust system that not only scales but does so in a way that meets evolving demands without compromising on performance.

    Navigating the complexities of designing a web crawler means making critical decisions about data storage and system architecture. We’ll weigh the benefits of using cloud storage solutions like AWS S3 and Azure Blob Storage against maintaining dedicated servers. Discover the role of REST APIs in seamless user and service interactions, and explore search functionalities using Cassandra, Amazon Athena, or Google’s BigQuery. Flexibility and foresight are key as we build systems that adapt to future needs. Thank you for your continued support—let’s keep learning and growing on this exciting system design journey together.

    Support the show

    Dedicated to the memory of Crystal Rose.
    Email me at [email protected]
    Join the free Discord
    Consider supporting us on Patreon
    Special thanks to Aimless Orbiter for the wonderful music.
    Please consider giving us a rating on ITunes or wherever you listen to new episodes.


    33 min
  • 7. Decoding the Internet: From DNS to Advanced Service Discovery

    Send us a text

    How does the invisible architecture of the internet keep everything running smoothly? Prepare to have your mind blown as we unravel the mysteries of the Domain Name System (DNS) in this episode of Learn System Design. We'll guide you through the intricate process of how your browser finds the correct IP address for a domain name, likening DNS to an enormous, sophisticated key-value database. Discover the essential components that make DNS work seamlessly, from DNS servers and resource records to caching mechanisms. We break down the DNS hierarchy, explaining the pivotal roles of recursive resolvers, root name servers, and top-level domain servers.

    But that's not all—we're also diving deep into the world of service discovery patterns. Which is better: client-side or server-side discovery? We'll weigh the pros and cons of each, spotlighting real-world examples like Netflix's Eureka and AWS Elastic Load Balancer. Learn why a service registry is crucial for maintaining an updated list of services and how heartbeat checks fit into this ecosystem. Finally, we explore three popular service discovery methods—DNS-based, Apache Zookeeper, and sidecar services—giving you an in-depth look at their benefits and limitations. This episode is your ultimate guide to building robust and efficient systems, so tune in and elevate your system design knowledge!

    Learn more about the different types of DNS Records (Zone files)

    Support the show

    Dedicated to the memory of Crystal Rose.
    Email me at [email protected]
    Join the free Discord
    Consider supporting us on Patreon
    Special thanks to Aimless Orbiter for the wonderful music.
    Please consider giving us a rating on ITunes or wherever you listen to new episodes.


    25 min
  • 6. Harnessing Load Balancers for Web Traffic Symphony

    Send us a text

    Imagine your website could handle the furious influx of a flash sale without breaking a sweat. That's the magic of load balancers, the unsung heroes of system design, which we dissect in this episode to help your services run smoothly even under the avalanche of high traffic. Together with industry experts, we unravel the mystery behind these traffic conductors, ensuring you grasp the significance of active-passive and active-active setups to avoid the dreaded single point of failure. We also pit hardware against software load balancers in an epic showdown, discussing how each fares in terms of performance, flexibility, and cost to help you architect a robust and scalable system.

    As the conversation heats up, we chart the terrain of load balancing algorithms, where each choice can lead to triumph or turmoil for your server efficiency. Get ready to be enlightened on the intricacies of weighted least connections, least response time strategies, and how real-time data can empower your system to channel web traffic with the precision of a symphony conductor. We're not just talking about keeping your digital lights on; it's about fine-tuning your system's performance to handle the crescendo of demands. So stay with us, because next time we'll be navigating the complex waters of DNS and network management, adding another layer to your growing mastery of system design.

    Support the show

    Dedicated to the memory of Crystal Rose.
    Email me at [email protected]
    Join the free Discord
    Consider supporting us on Patreon
    Special thanks to Aimless Orbiter for the wonderful music.
    Please consider giving us a rating on ITunes or wherever you listen to new episodes.


    26 min

About Learn System Design

From the publisher's feed

A bi-weekly podcast hosted by a senior engineer named Ben Kitchell that takes a deep dive into learning about technical system design by learning together. Each episode we will explore the inner workings of what makes these systems so complex and fascinating while building on our knowledge of how they came together.

More shows like Learn System Design

System Design by Wes and Kevin

System Design

93 Listeners