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

  • Event-Driven

    eBay employs event-driven architectures to manage asynchronous processing efficiently. explains that by using queues, eBay can handle average loads rather than peak loads, smoothing out fluctuations in demand 1. This approach involves using event streams, where actions like listing or bidding on items trigger events that multiple systems can process asynchronously. He notes, "The primary use case that lists an item or bids an item or whatever, also as part of its insert or update of that record, also is inserting an item into an event table" 1. This system allows for efficient task management and reduces the need for real-time processing.

       

    Multicast Messaging

    Multicast messaging at eBay is used to achieve semi-reliable message delivery in asynchronous systems. Randy describes how updates are sent over a multicast message bus, where nodes listen for messages to update themselves 2. If a node misses a message, it requests a resend, ensuring reliability through persistent storage. He explains, "The way we make it reliable is that when nodes notice that they've missed a message, they send a message back to the search feeder application" 2. This method balances reliability with the inherent unreliability of multicast messaging.

       

    Consistent Asynchrony

    Balancing consistency and asynchrony is crucial for eBay's system reliability and performance. Randy discusses the trade-offs between consistency and scalability, emphasizing that distributed transactions can hinder scalability 3. Instead, eBay opts for a best-effort asynchronous approach, allowing for scalable and available systems. He states, "Once you realize, once you get the zen of being inconsistent, it frees you quite a lot to build systems that are scalable and available" 4. This strategy involves using asynchronous events to maintain system integrity without sacrificing performance.

Related Episodes