Published Sep 3, 2019

Episode 109: eBay’s Architecture Principles with Randy Shoup

Randy Shoup, Distinguished Architect at eBay, unveils the architectural principles that drive eBay's robust infrastructure, focusing on failure management, asynchronous processing, effective partitioning, and automation strategies to ensure scalability and resilience.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Graceful Degradation

    eBay's architecture is designed to degrade gracefully, ensuring minimal disruption to users during failures. emphasizes the importance of a robust failure detection system, which includes a central application logging system that monitors infrastructure health. This system sends events over a multicast message bus, allowing for real-time monitoring and alerting by aggregating data from various sources 1.

    Degrade gracefully.

    ---

    This approach ensures that the operations team can swiftly address issues, maintaining system stability 2.

       

    Rollback Strategies

    Rollback strategies at eBay are crucial for safe testing and feature deployment. explains that separating code deployment from feature deployment allows for changes to be undone without affecting the entire system. Automated tools facilitate rollouts and can reverse changes if issues are detected, ensuring system functionality remains intact 3.

    It's actually reverse dependency order, starting with the leaves of dependency tree and moving back up.

    ---

    This methodical approach minimizes risk and enhances the reliability of deployments 4.

       

    Embracing Failure

    Embracing failure is a fundamental principle in eBay's system architecture. highlights the inevitability of failures in distributed systems and the need to design systems that can tolerate and adapt to these failures. By assuming that every operation might fail, eBay's architecture is built to detect and recover from failures swiftly while maintaining as much functionality as possible 5.

    We assume that every operation will fail, every resource will be unavailable.

    ---

    This proactive approach ensures that the system continues to operate effectively, even when some components are down.

Related Episodes