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

  • Partitioning

    Randy Shoup, a distinguished architect at eBay, emphasizes the importance of partitioning in achieving scalability. He explains that eBay's architecture is divided into smaller, manageable chunks, allowing for horizontal scaling and maintaining system simplicity. Functional segmentation is a key strategy, where systems like selling, buying, and search are distinct, enabling independent updates and maintenance.

    If you can't split it, you can't scale it.

    ---

    This approach not only aids in scalability but also enhances availability and manageability by allowing parts of the infrastructure to be updated without affecting the whole 1 2.

       

    Sharding

    Database sharding is another critical component of eBay's architecture, as explained by Randy. Sharding involves dividing data into smaller pieces, allowing for efficient data management and access. This method supports scalability by enabling data to be spread across multiple hosts, reducing the load on any single database.

    The industry standard term, we don't use this internally, but the industry standard term is sharding.

    ---

    Functional segmentation of the data tier further organizes databases into user, item, and transactional categories, enhancing both scalability and availability 3 4.

       

    Search

    The search infrastructure at eBay is a prime example of functional segmentation, designed to handle real-time updates efficiently. Randy highlights that the search engine operates as a read-only system, separate from transactional databases, and is optimized for query performance. This separation allows for near real-time updates, crucial for user experience, especially when factors like price changes occur.

    Our users expect the search engine to be updated in essentially near real time.

    ---

    This design ensures that the search engine remains responsive and accurate, meeting the high expectations of eBay's user base 5.

Related Episodes