SlideShare a Scribd company logo
1 of 25
Download to read offline
eBay’s Architectural Principles
    Architectural Strategies, Patterns, and Forces
        for Scaling a Large eCommerce Site



                          Randy Shoup
                   eBay Distinguished Architect




QCon London 2008
March 14, 2008
What we’re up against


• eBay manages …
   – Over 276 000 000 registered users
          276,000,000
   – Over 2 Billion photos                                     A sportingis soldsells every 2 seconds
                                                                 An SUV good every 5 minutes

     – eBay users worldwide trade on average $2039
       in goods every second
     – eBay averages well over 1 billion page views
       per day
     – At any given time, there are over 113 million
       items for sale in over 50 000 categories
                              50,000
     – eBay stores over 2 Petabytes of data – over
       200 times the size of the Library of Congress!
     – The eBay platform handles 5.5 billion API calls      Over ½ Million pounds of
       per month                                            Kimchi are sold every year!

    • In a dynamic environment
         – 300+ features per quarter
         – We roll 100,000+ lines of code every two weeks
              • In 39 countries, in 7 languages, 24x7x365

                       >48 Billion SQL executions/day!


                                                                                             © 2008 eBay Inc.
Architectural Forces: What do we think about?

• Scalability
   – Resource usage should increase linearly ( better!) with load
                  g                            y (or     )
   – Design for 10x growth in data, traffic, users, etc.
• Availability
   – Resilience to failure
   – Graceful degradation
   – Recoverability from failure
• Latency
   – User experience latency
   – Data latency
• Manageability
   – Simplicity
   – Maintainability
   – Diagnostics
• Cost
   – D
     Development effort and complexity
         l       t ff t d       l it
   – Operational cost (TCO)
                                                                    © 2008 eBay Inc.
Architectural Strategies: How do we do it?


• Strategy 1: Partition Everything
   – “How do you eat an elephant? … One bite at a time”


• Strategy 2: Async Everywhere
   – “Good things come to those who wait”


• Strategy 3: Automate Everything
   – “Give a man a fish and he eats for a day …
      Teach a man to fish and he eats for a lifetime”


• Strategy 4: Remember Everything Fails
   – “Be Prepared”




                                                          © 2008 eBay Inc.
Strategy 1: Partition Everything


• Split every problem into manageable chunks
   – By data, load, and/or usage pattern
   – “If you can’t split it, you can’t scale it”


• Motivations
   –   Scalability: can scale horizontally and independently
   –   Availability: can i l
       A il bili         isolate f il
                                 failures
   –   Manageability: can decouple different segments and functional areas
   –   Cost: can use less expensive hardware


• Partitioning Patterns
   – Functional Segmentation
   – Horizontal Split




                                                                             © 2008 eBay Inc.
Partition Everything: Databases

Pattern: Functional Segmentation
  – Segment databases into functional areas




  – Group data using standard data modeling techniques
     • Cardinality (1:1, 1:N, M:N)
     • Data relationships
     • Usage characteristics
  – Logical hosts
      g
     • Abstract application’s logical representation from host’s physical location
     • Support collocating and separating hosts without code change


  Over 1000 logical databases on ~400 physical hosts

                                                                                     © 2008 eBay Inc.
Partition Everything: Databases

Pattern: Horizontal Split
   – Split (or “shard”) databases horizontally along primary access path
                shard )
   – Different split strategies for different use cases
      • Modulo on key (item id, user id, etc.)
      • Lookup- or range-based
   – Aggregation / routing in Data Access Layer (DAL)
      • Abstracts developers from split logic, logical-physical mapping
      • Routes CRUD operation(s) to appropriate split(s)
      • Supports rebalancing through config change




                                                                           © 2008 eBay Inc.
Partition Everything: Databases

Corollary: No Database Transactions
  – eBay’s transaction policy
    eBay s
     • Absolutely no client side transactions, two-phase commit, etc.
     • Auto-commit for vast majority of DB writes
     • Anonymous PL/SQL blocks for multi-statement transactions within single DB
  – Consistency is not always required or possible (!)
     • To guarantee availability and partition-tolerance, we are forced to trade off consistency
       (Brewer’s CAP Th
       (B     ’      Theorem)   )
     • Leads unavoidably to systems with BASE semantics rather than ACID guarantees
     • Consistency is a spectrum, not binary
  – C
    Consistency without t
        i t      ith t transactions
                              ti
     • Careful ordering of DB operations
     • Eventual consistency through asynchronous event or reconciliation batch




                                                                                                   © 2008 eBay Inc.
Partition Everything: Application Tier

Pattern: Functional Segmentation
   – Segment functions into separate application pools
   – Minimizes DB / resource dependencies
   – Allows for parallel development, deployment, and monitoring
Pattern: H i
P tt     Horizontal Split
                t l S lit
   – Within pool, all application servers are created equal
   – Routing through standard load-balancers
   – Allows f rolling updates
            for




   Over 16,000 application servers in 220 pools
                                                                   © 2008 eBay Inc.
Partition Everything: Application Tier

Corollary: No Session State

   – User session flow moves through multiple application pools

   – Ab l t l no session state i application ti
     Absolutely      i    t t in    li ti tier

   – Transient state maintained / referenced by
      • URL
      • Cookie
      • Scratch database




                                                                  © 2008 eBay Inc.
Partition Everything: Search Engine

Pattern: Functional Segmentation
   – Read only search function decoupled from write-intensive transactional databases
     Read-only                                write intensive

Pattern: Horizontal Split
   – Search index divided into grid of N slices (
                                 g              (“columns”) by modulo of a key
                                                          ) y                y
   – Each slice is replicated to M instances (“rows”)
   – Aggregator parallelizes query to one node in each column, aggregates results




                                                                                    © 2008 eBay Inc.
Strategy 2: Async Everywhere

• Prefer Asynchronous Processing
   – Move as much processing as possible to asynchronous flows
   – Where possible, integrate disparate components asynchronously


• Motivations
   – Scalability: can scale components independently
   – Availability
      • Can decouple availability state
      • Can retry operations
   – Latency
      • Can significantly improve user experience latency at cost of data/execution latency
      • Can allocate more time to processing than user would tolerate
   – C t can spread peak l d over ti
     Cost:        d    k load     time


• Asynchrony Patterns
    y      y
   – Message Dispatch
   – Periodic Batch
                                                                                              © 2008 eBay Inc.
Async Everywhere: Event Streams

Pattern: Message Dispatch
  – Primary use case p
          y          produces event
     • E.g., ITEM.NEW, BID.NEW, ITEM.SOLD, etc.
     • Event typically created transactionally with insert/update of primary table
  – Consumers subscribe to event
     • Multiple logical consumers can process each event
     • Each logical consumer has its own event queue
     • Within each logical consumer, single consumer instance processes event
     • Guaranteed at least once delivery; no guaranteed order
  – Managing timing conditions
     • Idempotency: processing event N times should give same results as processing once
     • Readback: consumer typically reads back to primary database for latest data




  Over 100 logical consumers consuming ~300 event types                                    © 2008 eBay Inc.
Async Everywhere: Search Feeder Infrastructure

Pattern: Message Dispatch
  – Feeder reads item updates from primary database
  – Feeder publishes updates via reliable multicast
     • Persist messages in intermediate data store for recovery
     • Publish updates to search nodes
     • Resend recovery messages when messages are missed
  – Search nodes listen to updates
     • Li t t assigned subset of messages
       Listen to i   d b t f
     • Update in-memory index in real time
     • Request recovery




                                                                  © 2008 eBay Inc.
Async Everywhere: Batch

Pattern: Periodic Batch
   – Scheduled offline batch process
   – Most appropriate for
      • Infrequent, periodic, or scheduled processing (once per day, week, month)
      • Non incremental computation (a k a “Full Table Scan )
        Non-incremental             (a.k.a. Full       Scan”)
   – Examples
      • Import third-party data (catalogs, currency, etc.)
      • G     t          d ti    (it
        Generate recommendations (items, products, searches, etc.)
                                            d t         h     t )
      • Process items at end of auction
   – Often drives further downstream processing through Message Dispatch




                                                                                    © 2008 eBay Inc.
Strategy 3: Automate Everything

• Prefer Adaptive / Automated Systems to Manual Systems


• Motivations
   – Scalability
               y
      • Can scale with machines, not humans
   – Availability / Latency
      • Can adapt to changing environment more rapidly
   – Cost
      • Machines are far less expensive than humans
      • Can learn / improve / adjust over time without manual effort
   – Functionality
      • Can consider more factors in decisions
        Can  l      l ti
      • C explore solution space more th
                                      thoroughly and quickly
                                             hl    d i kl



• Automation Patterns
   – Adaptive Configuration
   – Machine Learning
                                                                       © 2008 eBay Inc.
Automate Everything: Event Consumer Configuration

Pattern: Adaptive Configuration
   – Define service level agreement (SLA) for a given logical event consumer
            service-level
      • E.g., 99% of events processed in 15 seconds
   – Consumer dynamically adjusts to meet defined SLA with minimal resources
      • Event polling size and polling frequency
      • Number of processor threads
   – Automatically adapts to changes in
      • L d(
        Load (queue l
                    length)
                        th)
      • Event processing time
      • Number of consumer instances




                                                                               © 2008 eBay Inc.
Automate Everything: Adaptive Finding Experience

Pattern: Machine Learning
  – Dynamically adapt experience
     • Choose page, modules, and inventory which provide best experience for that user and
       context
     • Order results by combination of demand, supply, and other factors (“Best Match”)
                      y                      , pp y,                     (            )
  – Feedback loop enables system to learn and improve over time
     • Collect user behavior
     • Aggregate and analyze offline
     • Deploy updated metadata
     • Decide on and serve appropriate experience
  – Best Practices
     • “Perturbation” for continual improvement
     • Dampening of positive feedback




                                                                                             © 2008 eBay Inc.
Strategy 4: Remember Everything Fails

• Build all systems to be tolerant of failure
   –   Assume every operation will fail and every resource will be unavailable
   –   Detect failure as rapidly as possible
   –   Recover from failure as rapidly as possible
   –   D as much as possible d i f il
       Do          h         ibl during failure


• Motivation
   – Availability


• Failure Patterns
   – Failure Detection
   – Rollback
   – Graceful Degradation




                                                                                 © 2008 eBay Inc.
Everything Fails: Central Application Logging

Pattern: Failure Detection
   – Application servers log all requests
      pp                   g       q
      • Detailed logging of all application activity, particularly database and other external resources
      • Log request, application-generated information, and exceptions
   – Messages broadcast on multicast message bus
   – Listeners automate failure detection and notification
      • Real-time application state monitoring: exceptions and operational alerts
      • Historical reports by application server pool, URL, database, etc.




   – Over 1.5TB of log messages per day                                                            © 2008 eBay Inc.
Everything Fails: Code Rollout / Rollback

Pattern: Rollback
   Absolutely no changes to the site which cannot be undone (!)

   – Entire site rolled every 2 weeks: 16,000 application servers in 220 pools
   – Many deployed features have dependencies between pools
   – Rollout plan contains explicit set (transitive closure) of all rollout dependencies
   – Automated tool executes staged rollout, with built-in checkpoints and immediate
     rollback if necessary
   – Automated tool optimizes rollback, including full rollback of dependent pools




                                                                                           © 2008 eBay Inc.
Everything Fails: Feature Wire-on / Wire-off

Pattern: Rollback

   – Every feature has on / off state driven by central configuration
      • Allows feature to be immediately turned off for operational or business reasons
      • Allows features to be deployed “wired off” to unroll dependencies
                                        wired-off
   – Decouples code deployment from feature deployment
   – Applications check for feature “availability” in the same way as they check for
     resource availability




                                                                                          © 2008 eBay Inc.
Everything Fails: Resource Markdown

Pattern: Failure Detection
   – Application detects when database or other backend resource is unavailable or
     distressed
      • “Resource slow” is often far more challenging than “resource down” (!)



Pattern: Graceful Degradation
   – Application “marks down” the resource
      • Stops making calls to it and sends alert
   – Non-critical functionality is removed or ignored
   – Critical functionality is retried or deferred
      • Failover to alternate resource
      • Defer processing to async event
   – Explicit “markup”
       p            p
      • Allows resource to be restored and brought online in a controlled way




                                                                                     © 2008 eBay Inc.
Recap: Architectural Strategies


• Strategy 1: Partition Everything


• Strategy 2: Async Everywhere


• Strategy 3: Automate Everything


• Strategy 4: Remember Everything Fails




                                          © 2008 eBay Inc.
Questions?


• Randy Shoup, eBay Distinguished Architect
   rshoup@ebay.com




                                              © 2008 eBay Inc.

More Related Content

What's hot

Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SREAraf Karsh Hamid
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCDCloudOps2005
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Animesh Singh
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsOpsta
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Flink Forward
 
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...confluent
 
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...Guozhang Wang
 
Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...Hitachi, Ltd. OSS Solution Center.
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsJulian Mazzitelli
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022Kai Wähner
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservicesAndrew Schofield
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022HostedbyConfluent
 
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...Amazon Web Services
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...HostedbyConfluent
 
Securing Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOpsSecuring Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOpsAmazon Web Services
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?confluent
 
DevOps evolution architecting the modern software factory - cloud expo east 2017
DevOps evolution architecting the modern software factory - cloud expo east 2017DevOps evolution architecting the modern software factory - cloud expo east 2017
DevOps evolution architecting the modern software factory - cloud expo east 2017Anand Akela
 
The What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsThe What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsCprime
 

What's hot (20)

Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!Microservices, Kubernetes and Istio - A Great Fit!
Microservices, Kubernetes and Istio - A Great Fit!
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
 
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
 
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
 
Netflix conductor
Netflix conductorNetflix conductor
Netflix conductor
 
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
Consistency and Completeness: Rethinking Distributed Stream Processing in Apa...
 
Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
 
The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022The Top 5 Apache Kafka Use Cases and Architectures in 2022
The Top 5 Apache Kafka Use Cases and Architectures in 2022
 
Event-driven microservices
Event-driven microservicesEvent-driven microservices
Event-driven microservices
 
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
Schema Registry 101 with Bill Bejeck | Kafka Summit London 2022
 
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
How HSBC Uses Serverless to Process Millions of Transactions in Real Time (FS...
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
How Zillow Unlocked Kafka to 50 Teams in 8 months | Shahar Cizer Kobrinsky, Z...
 
Securing Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOpsSecuring Systems at Cloud Scale with DevSecOps
Securing Systems at Cloud Scale with DevSecOps
 
Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?Kafka Streams: What it is, and how to use it?
Kafka Streams: What it is, and how to use it?
 
DevOps evolution architecting the modern software factory - cloud expo east 2017
DevOps evolution architecting the modern software factory - cloud expo east 2017DevOps evolution architecting the modern software factory - cloud expo east 2017
DevOps evolution architecting the modern software factory - cloud expo east 2017
 
The What, Why, and How of DevSecOps
The What, Why, and How of DevSecOpsThe What, Why, and How of DevSecOps
The What, Why, and How of DevSecOps
 

Viewers also liked

No Bragging and Nothing Boring: 11 Ways to Share Your Impact
No Bragging and Nothing Boring: 11 Ways to Share Your ImpactNo Bragging and Nothing Boring: 11 Ways to Share Your Impact
No Bragging and Nothing Boring: 11 Ways to Share Your ImpactKivi Leroux Miller
 
Why Transliteracy? An Introduction for Librarians
Why Transliteracy? An Introduction for LibrariansWhy Transliteracy? An Introduction for Librarians
Why Transliteracy? An Introduction for LibrariansBobbi Newman
 
concierto oli
concierto oliconcierto oli
concierto olilaulolis
 
Infostudio Chocolate Bars 2
Infostudio Chocolate Bars 2Infostudio Chocolate Bars 2
Infostudio Chocolate Bars 2becz_y
 
Lo Sport Visto In Modo Non Convenzionale
Lo Sport Visto In Modo Non ConvenzionaleLo Sport Visto In Modo Non Convenzionale
Lo Sport Visto In Modo Non ConvenzionaleMolinaro Andrea
 
RFC 7435 - Opportunistic security - Some protection most of the time
RFC 7435 - Opportunistic security - Some protection most of the timeRFC 7435 - Opportunistic security - Some protection most of the time
RFC 7435 - Opportunistic security - Some protection most of the timeOlle E Johansson
 
Gunnar westling ledarskap i tjänsteföretag ifl20111115
Gunnar westling ledarskap i tjänsteföretag ifl20111115Gunnar westling ledarskap i tjänsteföretag ifl20111115
Gunnar westling ledarskap i tjänsteföretag ifl20111115Gunnar Westling
 
ObjectDesignReading in DevSumi2000008
ObjectDesignReading in DevSumi2000008ObjectDesignReading in DevSumi2000008
ObjectDesignReading in DevSumi2000008Takashi Hatakeyama
 
'Advanced' Link Building
'Advanced' Link Building'Advanced' Link Building
'Advanced' Link BuildingIan Lurie
 
Linda Rising Born To Cycle
Linda Rising Born To CycleLinda Rising Born To Cycle
Linda Rising Born To Cycledeimos
 
The Social Web & Your Library
The Social Web & Your LibraryThe Social Web & Your Library
The Social Web & Your LibraryBobbi Newman
 
Comune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 Ab
Comune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 AbComune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 Ab
Comune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 Abmaurinbu
 
Jim Webber A Couple Of Ways To Skin An Internet Scale Catx
Jim Webber A Couple Of Ways To Skin An Internet Scale CatxJim Webber A Couple Of Ways To Skin An Internet Scale Catx
Jim Webber A Couple Of Ways To Skin An Internet Scale Catxdeimos
 
The new framework
The new frameworkThe new framework
The new frameworkiansillett
 
How to Sell Social Media to the C Suite _ Shashi Bellamkonda
How to Sell Social Media to the C Suite _ Shashi BellamkondaHow to Sell Social Media to the C Suite _ Shashi Bellamkonda
How to Sell Social Media to the C Suite _ Shashi BellamkondaShashi Bellamkonda
 
Lectii Corporative
Lectii CorporativeLectii Corporative
Lectii CorporativeAlexandru S
 

Viewers also liked (20)

No Bragging and Nothing Boring: 11 Ways to Share Your Impact
No Bragging and Nothing Boring: 11 Ways to Share Your ImpactNo Bragging and Nothing Boring: 11 Ways to Share Your Impact
No Bragging and Nothing Boring: 11 Ways to Share Your Impact
 
Why Transliteracy? An Introduction for Librarians
Why Transliteracy? An Introduction for LibrariansWhy Transliteracy? An Introduction for Librarians
Why Transliteracy? An Introduction for Librarians
 
concierto oli
concierto oliconcierto oli
concierto oli
 
Etrange
EtrangeEtrange
Etrange
 
Infostudio Chocolate Bars 2
Infostudio Chocolate Bars 2Infostudio Chocolate Bars 2
Infostudio Chocolate Bars 2
 
Lo Sport Visto In Modo Non Convenzionale
Lo Sport Visto In Modo Non ConvenzionaleLo Sport Visto In Modo Non Convenzionale
Lo Sport Visto In Modo Non Convenzionale
 
RFC 7435 - Opportunistic security - Some protection most of the time
RFC 7435 - Opportunistic security - Some protection most of the timeRFC 7435 - Opportunistic security - Some protection most of the time
RFC 7435 - Opportunistic security - Some protection most of the time
 
Gunnar westling ledarskap i tjänsteföretag ifl20111115
Gunnar westling ledarskap i tjänsteföretag ifl20111115Gunnar westling ledarskap i tjänsteföretag ifl20111115
Gunnar westling ledarskap i tjänsteföretag ifl20111115
 
ObjectDesignReading in DevSumi2000008
ObjectDesignReading in DevSumi2000008ObjectDesignReading in DevSumi2000008
ObjectDesignReading in DevSumi2000008
 
'Advanced' Link Building
'Advanced' Link Building'Advanced' Link Building
'Advanced' Link Building
 
Linda Rising Born To Cycle
Linda Rising Born To CycleLinda Rising Born To Cycle
Linda Rising Born To Cycle
 
The Social Web & Your Library
The Social Web & Your LibraryThe Social Web & Your Library
The Social Web & Your Library
 
Comune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 Ab
Comune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 AbComune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 Ab
Comune Di Casier Per Pubblicazione Con Dati Di Confronto Superiori A 10000 Ab
 
Jim Webber A Couple Of Ways To Skin An Internet Scale Catx
Jim Webber A Couple Of Ways To Skin An Internet Scale CatxJim Webber A Couple Of Ways To Skin An Internet Scale Catx
Jim Webber A Couple Of Ways To Skin An Internet Scale Catx
 
5 Things
5 Things5 Things
5 Things
 
The new framework
The new frameworkThe new framework
The new framework
 
How to Sell Social Media to the C Suite _ Shashi Bellamkonda
How to Sell Social Media to the C Suite _ Shashi BellamkondaHow to Sell Social Media to the C Suite _ Shashi Bellamkonda
How to Sell Social Media to the C Suite _ Shashi Bellamkonda
 
資訊作業
資訊作業資訊作業
資訊作業
 
Community keynote
Community keynoteCommunity keynote
Community keynote
 
Lectii Corporative
Lectii CorporativeLectii Corporative
Lectii Corporative
 

Similar to Randy Shoup eBays Architectural Principles

Inventing the future Business Programming Language
Inventing the future  Business Programming LanguageInventing the future  Business Programming Language
Inventing the future Business Programming LanguageESUG
 
Deploying and Scaling using AWS
Deploying and Scaling using AWSDeploying and Scaling using AWS
Deploying and Scaling using AWSwr0ngway
 
Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...
Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...
Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...marcja
 
Scaling systems using change propagation across data stores
Scaling systems using change propagation across data storesScaling systems using change propagation across data stores
Scaling systems using change propagation across data storesJagadeesh Huliyar
 
Storage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems PresentationStorage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems Presentationandyman3000
 
Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008Cybera Inc.
 
[Roblek] Distributed computing in practice
[Roblek] Distributed computing in practice[Roblek] Distributed computing in practice
[Roblek] Distributed computing in practicejavablend
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 NotesRoss Lawley
 
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suroDevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suroGaurav "GP" Pal
 
Asynchronous Javascript and Rich Internet Aplications
Asynchronous Javascript and Rich Internet AplicationsAsynchronous Javascript and Rich Internet Aplications
Asynchronous Javascript and Rich Internet AplicationsSubramanyan Murali
 
Best Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesBest Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesCraig Dickson
 
Oracle database performance monitoring diagnosis and reporting with EG Innova...
Oracle database performance monitoring diagnosis and reporting with EG Innova...Oracle database performance monitoring diagnosis and reporting with EG Innova...
Oracle database performance monitoring diagnosis and reporting with EG Innova...eG Innovations
 
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...Flink Forward
 
Coates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceCoates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceBOSC 2010
 
Eventum Presentation
Eventum PresentationEventum Presentation
Eventum Presentationjoaopmaia
 

Similar to Randy Shoup eBays Architectural Principles (20)

Inventing the future Business Programming Language
Inventing the future  Business Programming LanguageInventing the future  Business Programming Language
Inventing the future Business Programming Language
 
Deploying and Scaling using AWS
Deploying and Scaling using AWSDeploying and Scaling using AWS
Deploying and Scaling using AWS
 
Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...
Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...
Distributed Caches: A Developer’s Guide to Unleashing Your Data in High-Perfo...
 
Scaling systems using change propagation across data stores
Scaling systems using change propagation across data storesScaling systems using change propagation across data stores
Scaling systems using change propagation across data stores
 
Storage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems PresentationStorage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems Presentation
 
Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008Pstrong Cybera 29 Sept 2008
Pstrong Cybera 29 Sept 2008
 
Qcon
QconQcon
Qcon
 
[Roblek] Distributed computing in practice
[Roblek] Distributed computing in practice[Roblek] Distributed computing in practice
[Roblek] Distributed computing in practice
 
Rails Conf Europe 2007 Notes
Rails Conf  Europe 2007  NotesRails Conf  Europe 2007  Notes
Rails Conf Europe 2007 Notes
 
20080611accel
20080611accel20080611accel
20080611accel
 
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suroDevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
 
Asynchronous Javascript and Rich Internet Aplications
Asynchronous Javascript and Rich Internet AplicationsAsynchronous Javascript and Rich Internet Aplications
Asynchronous Javascript and Rich Internet Aplications
 
Best Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web SitesBest Practices for Large-Scale Web Sites
Best Practices for Large-Scale Web Sites
 
Oracle database performance monitoring diagnosis and reporting with EG Innova...
Oracle database performance monitoring diagnosis and reporting with EG Innova...Oracle database performance monitoring diagnosis and reporting with EG Innova...
Oracle database performance monitoring diagnosis and reporting with EG Innova...
 
Seminar - JBoss Migration
Seminar - JBoss MigrationSeminar - JBoss Migration
Seminar - JBoss Migration
 
Magee Dday2 Fixing App Performance Italiano
Magee Dday2 Fixing App Performance ItalianoMagee Dday2 Fixing App Performance Italiano
Magee Dday2 Fixing App Performance Italiano
 
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
 
Web 2.0 101
Web 2.0 101Web 2.0 101
Web 2.0 101
 
Coates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substanceCoates bosc2010 clouds-fluff-and-no-substance
Coates bosc2010 clouds-fluff-and-no-substance
 
Eventum Presentation
Eventum PresentationEventum Presentation
Eventum Presentation
 

More from deimos

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Rubydeimos
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuerydeimos
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwrdeimos
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdddeimos
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovydeimos
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfacesdeimos
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyonddeimos
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipitydeimos
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Webdeimos
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Restdeimos
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedraldeimos
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalabilitydeimos
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfairdeimos
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systemsdeimos
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platformdeimos
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolutiondeimos
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLsdeimos
 

More from deimos (20)

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Ruby
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwr
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdd
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languages
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipity
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Web
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedral
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalability
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platform
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 

Recently uploaded

5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf
5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf
5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdfSherl Simon
 
Understanding market needs for startups 4_4_2024.pdf
Understanding market needs for startups 4_4_2024.pdfUnderstanding market needs for startups 4_4_2024.pdf
Understanding market needs for startups 4_4_2024.pdfRichard Guha
 
Fundamentals Welcome and Inclusive DEIB
Fundamentals Welcome and  Inclusive DEIBFundamentals Welcome and  Inclusive DEIB
Fundamentals Welcome and Inclusive DEIBGregory DeShields
 
BoSEU24 | Imogen Wethered | How to Sell a Business in a Decade
BoSEU24 | Imogen Wethered | How to Sell a Business in a DecadeBoSEU24 | Imogen Wethered | How to Sell a Business in a Decade
BoSEU24 | Imogen Wethered | How to Sell a Business in a DecadeBusiness of Software Conference
 
Harnessing LinkedIn's Data Goldmine: A Strategic Guide
Harnessing LinkedIn's Data Goldmine: A Strategic GuideHarnessing LinkedIn's Data Goldmine: A Strategic Guide
Harnessing LinkedIn's Data Goldmine: A Strategic GuideScrapIn
 
Device Management via Intune : Balancing Security and Flexibility
Device Management via Intune : Balancing Security and FlexibilityDevice Management via Intune : Balancing Security and Flexibility
Device Management via Intune : Balancing Security and FlexibilityManagedms365
 
Trian White Paper on Creating Value at Disney April 2024
Trian White Paper on Creating Value at Disney April 2024Trian White Paper on Creating Value at Disney April 2024
Trian White Paper on Creating Value at Disney April 2024Neil Kimberley
 
AI automation startup Nanonets' $29 Million pitch deck
AI automation startup Nanonets' $29 Million pitch deckAI automation startup Nanonets' $29 Million pitch deck
AI automation startup Nanonets' $29 Million pitch deckqilerongrong
 
Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)
Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)
Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)Lviv Startup Club
 
Jewish Resources in the Family Resource Centre
Jewish Resources in the Family Resource CentreJewish Resources in the Family Resource Centre
Jewish Resources in the Family Resource CentreNZSG
 
Simplify Your Funding: Quick and Easy Business Loans
Simplify Your Funding: Quick and Easy Business LoansSimplify Your Funding: Quick and Easy Business Loans
Simplify Your Funding: Quick and Easy Business LoansNugget Global
 
Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...
Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...
Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...Aggregage
 
Can Same-Day Delivery Disrupt Crowded E-com Market.pdf
Can Same-Day Delivery Disrupt Crowded E-com Market.pdfCan Same-Day Delivery Disrupt Crowded E-com Market.pdf
Can Same-Day Delivery Disrupt Crowded E-com Market.pdfJasper Colin
 
GUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdf
GUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdfGUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdf
GUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdfDanny Diep To
 
Pelago's pitch deck for their Series C funding round, valued at $58 million.
Pelago's pitch deck for their Series C funding round, valued at $58 million.Pelago's pitch deck for their Series C funding round, valued at $58 million.
Pelago's pitch deck for their Series C funding round, valued at $58 million.qilerongrong
 
Mission Translate - The Power of Words.pdf
Mission Translate - The Power of Words.pdfMission Translate - The Power of Words.pdf
Mission Translate - The Power of Words.pdfmissiontranslate026
 
Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003
Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003
Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003Levi Shapiro
 
Roman Kyslyi: Використання та побудова LLM агентів (UA)
Roman Kyslyi: Використання та побудова LLM агентів (UA)Roman Kyslyi: Використання та побудова LLM агентів (UA)
Roman Kyslyi: Використання та побудова LLM агентів (UA)Lviv Startup Club
 
Paul Turovsky - Real Estate Professional
Paul Turovsky - Real Estate ProfessionalPaul Turovsky - Real Estate Professional
Paul Turovsky - Real Estate ProfessionalPaul Turovsky
 

Recently uploaded (20)

5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf
5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf
5-Step Framework to Convert Any Business into a Wealth Generation Machine.pdf
 
Understanding market needs for startups 4_4_2024.pdf
Understanding market needs for startups 4_4_2024.pdfUnderstanding market needs for startups 4_4_2024.pdf
Understanding market needs for startups 4_4_2024.pdf
 
Fundamentals Welcome and Inclusive DEIB
Fundamentals Welcome and  Inclusive DEIBFundamentals Welcome and  Inclusive DEIB
Fundamentals Welcome and Inclusive DEIB
 
BoSEU24 | Imogen Wethered | How to Sell a Business in a Decade
BoSEU24 | Imogen Wethered | How to Sell a Business in a DecadeBoSEU24 | Imogen Wethered | How to Sell a Business in a Decade
BoSEU24 | Imogen Wethered | How to Sell a Business in a Decade
 
Harnessing LinkedIn's Data Goldmine: A Strategic Guide
Harnessing LinkedIn's Data Goldmine: A Strategic GuideHarnessing LinkedIn's Data Goldmine: A Strategic Guide
Harnessing LinkedIn's Data Goldmine: A Strategic Guide
 
Device Management via Intune : Balancing Security and Flexibility
Device Management via Intune : Balancing Security and FlexibilityDevice Management via Intune : Balancing Security and Flexibility
Device Management via Intune : Balancing Security and Flexibility
 
Trian White Paper on Creating Value at Disney April 2024
Trian White Paper on Creating Value at Disney April 2024Trian White Paper on Creating Value at Disney April 2024
Trian White Paper on Creating Value at Disney April 2024
 
AI automation startup Nanonets' $29 Million pitch deck
AI automation startup Nanonets' $29 Million pitch deckAI automation startup Nanonets' $29 Million pitch deck
AI automation startup Nanonets' $29 Million pitch deck
 
Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)
Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)
Kyryl Truskovskyi: Training and Serving Open-Sourced Foundational Models (UA)
 
Jewish Resources in the Family Resource Centre
Jewish Resources in the Family Resource CentreJewish Resources in the Family Resource Centre
Jewish Resources in the Family Resource Centre
 
Simplify Your Funding: Quick and Easy Business Loans
Simplify Your Funding: Quick and Easy Business LoansSimplify Your Funding: Quick and Easy Business Loans
Simplify Your Funding: Quick and Easy Business Loans
 
Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...
Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...
Strategic Project Finance Essentials: A Project Manager’s Guide to Financial ...
 
GAD EIF Webinar #6 Business Cases 6 out 39
GAD EIF Webinar #6 Business Cases 6 out 39GAD EIF Webinar #6 Business Cases 6 out 39
GAD EIF Webinar #6 Business Cases 6 out 39
 
Can Same-Day Delivery Disrupt Crowded E-com Market.pdf
Can Same-Day Delivery Disrupt Crowded E-com Market.pdfCan Same-Day Delivery Disrupt Crowded E-com Market.pdf
Can Same-Day Delivery Disrupt Crowded E-com Market.pdf
 
GUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdf
GUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdfGUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdf
GUIDELINES ON USEFUL FORMS IN FREIGHT FORWARDING (F) Danny Diep Toh MBA.pdf
 
Pelago's pitch deck for their Series C funding round, valued at $58 million.
Pelago's pitch deck for their Series C funding round, valued at $58 million.Pelago's pitch deck for their Series C funding round, valued at $58 million.
Pelago's pitch deck for their Series C funding round, valued at $58 million.
 
Mission Translate - The Power of Words.pdf
Mission Translate - The Power of Words.pdfMission Translate - The Power of Words.pdf
Mission Translate - The Power of Words.pdf
 
Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003
Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003
Version Bravo- The Springboard for Navy SEAL entrepreneurship, cohort 003
 
Roman Kyslyi: Використання та побудова LLM агентів (UA)
Roman Kyslyi: Використання та побудова LLM агентів (UA)Roman Kyslyi: Використання та побудова LLM агентів (UA)
Roman Kyslyi: Використання та побудова LLM агентів (UA)
 
Paul Turovsky - Real Estate Professional
Paul Turovsky - Real Estate ProfessionalPaul Turovsky - Real Estate Professional
Paul Turovsky - Real Estate Professional
 

Randy Shoup eBays Architectural Principles

  • 1. eBay’s Architectural Principles Architectural Strategies, Patterns, and Forces for Scaling a Large eCommerce Site Randy Shoup eBay Distinguished Architect QCon London 2008 March 14, 2008
  • 2. What we’re up against • eBay manages … – Over 276 000 000 registered users 276,000,000 – Over 2 Billion photos A sportingis soldsells every 2 seconds An SUV good every 5 minutes – eBay users worldwide trade on average $2039 in goods every second – eBay averages well over 1 billion page views per day – At any given time, there are over 113 million items for sale in over 50 000 categories 50,000 – eBay stores over 2 Petabytes of data – over 200 times the size of the Library of Congress! – The eBay platform handles 5.5 billion API calls Over ½ Million pounds of per month Kimchi are sold every year! • In a dynamic environment – 300+ features per quarter – We roll 100,000+ lines of code every two weeks • In 39 countries, in 7 languages, 24x7x365 >48 Billion SQL executions/day! © 2008 eBay Inc.
  • 3. Architectural Forces: What do we think about? • Scalability – Resource usage should increase linearly ( better!) with load g y (or ) – Design for 10x growth in data, traffic, users, etc. • Availability – Resilience to failure – Graceful degradation – Recoverability from failure • Latency – User experience latency – Data latency • Manageability – Simplicity – Maintainability – Diagnostics • Cost – D Development effort and complexity l t ff t d l it – Operational cost (TCO) © 2008 eBay Inc.
  • 4. Architectural Strategies: How do we do it? • Strategy 1: Partition Everything – “How do you eat an elephant? … One bite at a time” • Strategy 2: Async Everywhere – “Good things come to those who wait” • Strategy 3: Automate Everything – “Give a man a fish and he eats for a day … Teach a man to fish and he eats for a lifetime” • Strategy 4: Remember Everything Fails – “Be Prepared” © 2008 eBay Inc.
  • 5. Strategy 1: Partition Everything • Split every problem into manageable chunks – By data, load, and/or usage pattern – “If you can’t split it, you can’t scale it” • Motivations – Scalability: can scale horizontally and independently – Availability: can i l A il bili isolate f il failures – Manageability: can decouple different segments and functional areas – Cost: can use less expensive hardware • Partitioning Patterns – Functional Segmentation – Horizontal Split © 2008 eBay Inc.
  • 6. Partition Everything: Databases Pattern: Functional Segmentation – Segment databases into functional areas – Group data using standard data modeling techniques • Cardinality (1:1, 1:N, M:N) • Data relationships • Usage characteristics – Logical hosts g • Abstract application’s logical representation from host’s physical location • Support collocating and separating hosts without code change Over 1000 logical databases on ~400 physical hosts © 2008 eBay Inc.
  • 7. Partition Everything: Databases Pattern: Horizontal Split – Split (or “shard”) databases horizontally along primary access path shard ) – Different split strategies for different use cases • Modulo on key (item id, user id, etc.) • Lookup- or range-based – Aggregation / routing in Data Access Layer (DAL) • Abstracts developers from split logic, logical-physical mapping • Routes CRUD operation(s) to appropriate split(s) • Supports rebalancing through config change © 2008 eBay Inc.
  • 8. Partition Everything: Databases Corollary: No Database Transactions – eBay’s transaction policy eBay s • Absolutely no client side transactions, two-phase commit, etc. • Auto-commit for vast majority of DB writes • Anonymous PL/SQL blocks for multi-statement transactions within single DB – Consistency is not always required or possible (!) • To guarantee availability and partition-tolerance, we are forced to trade off consistency (Brewer’s CAP Th (B ’ Theorem) ) • Leads unavoidably to systems with BASE semantics rather than ACID guarantees • Consistency is a spectrum, not binary – C Consistency without t i t ith t transactions ti • Careful ordering of DB operations • Eventual consistency through asynchronous event or reconciliation batch © 2008 eBay Inc.
  • 9. Partition Everything: Application Tier Pattern: Functional Segmentation – Segment functions into separate application pools – Minimizes DB / resource dependencies – Allows for parallel development, deployment, and monitoring Pattern: H i P tt Horizontal Split t l S lit – Within pool, all application servers are created equal – Routing through standard load-balancers – Allows f rolling updates for Over 16,000 application servers in 220 pools © 2008 eBay Inc.
  • 10. Partition Everything: Application Tier Corollary: No Session State – User session flow moves through multiple application pools – Ab l t l no session state i application ti Absolutely i t t in li ti tier – Transient state maintained / referenced by • URL • Cookie • Scratch database © 2008 eBay Inc.
  • 11. Partition Everything: Search Engine Pattern: Functional Segmentation – Read only search function decoupled from write-intensive transactional databases Read-only write intensive Pattern: Horizontal Split – Search index divided into grid of N slices ( g (“columns”) by modulo of a key ) y y – Each slice is replicated to M instances (“rows”) – Aggregator parallelizes query to one node in each column, aggregates results © 2008 eBay Inc.
  • 12. Strategy 2: Async Everywhere • Prefer Asynchronous Processing – Move as much processing as possible to asynchronous flows – Where possible, integrate disparate components asynchronously • Motivations – Scalability: can scale components independently – Availability • Can decouple availability state • Can retry operations – Latency • Can significantly improve user experience latency at cost of data/execution latency • Can allocate more time to processing than user would tolerate – C t can spread peak l d over ti Cost: d k load time • Asynchrony Patterns y y – Message Dispatch – Periodic Batch © 2008 eBay Inc.
  • 13. Async Everywhere: Event Streams Pattern: Message Dispatch – Primary use case p y produces event • E.g., ITEM.NEW, BID.NEW, ITEM.SOLD, etc. • Event typically created transactionally with insert/update of primary table – Consumers subscribe to event • Multiple logical consumers can process each event • Each logical consumer has its own event queue • Within each logical consumer, single consumer instance processes event • Guaranteed at least once delivery; no guaranteed order – Managing timing conditions • Idempotency: processing event N times should give same results as processing once • Readback: consumer typically reads back to primary database for latest data Over 100 logical consumers consuming ~300 event types © 2008 eBay Inc.
  • 14. Async Everywhere: Search Feeder Infrastructure Pattern: Message Dispatch – Feeder reads item updates from primary database – Feeder publishes updates via reliable multicast • Persist messages in intermediate data store for recovery • Publish updates to search nodes • Resend recovery messages when messages are missed – Search nodes listen to updates • Li t t assigned subset of messages Listen to i d b t f • Update in-memory index in real time • Request recovery © 2008 eBay Inc.
  • 15. Async Everywhere: Batch Pattern: Periodic Batch – Scheduled offline batch process – Most appropriate for • Infrequent, periodic, or scheduled processing (once per day, week, month) • Non incremental computation (a k a “Full Table Scan ) Non-incremental (a.k.a. Full Scan”) – Examples • Import third-party data (catalogs, currency, etc.) • G t d ti (it Generate recommendations (items, products, searches, etc.) d t h t ) • Process items at end of auction – Often drives further downstream processing through Message Dispatch © 2008 eBay Inc.
  • 16. Strategy 3: Automate Everything • Prefer Adaptive / Automated Systems to Manual Systems • Motivations – Scalability y • Can scale with machines, not humans – Availability / Latency • Can adapt to changing environment more rapidly – Cost • Machines are far less expensive than humans • Can learn / improve / adjust over time without manual effort – Functionality • Can consider more factors in decisions Can l l ti • C explore solution space more th thoroughly and quickly hl d i kl • Automation Patterns – Adaptive Configuration – Machine Learning © 2008 eBay Inc.
  • 17. Automate Everything: Event Consumer Configuration Pattern: Adaptive Configuration – Define service level agreement (SLA) for a given logical event consumer service-level • E.g., 99% of events processed in 15 seconds – Consumer dynamically adjusts to meet defined SLA with minimal resources • Event polling size and polling frequency • Number of processor threads – Automatically adapts to changes in • L d( Load (queue l length) th) • Event processing time • Number of consumer instances © 2008 eBay Inc.
  • 18. Automate Everything: Adaptive Finding Experience Pattern: Machine Learning – Dynamically adapt experience • Choose page, modules, and inventory which provide best experience for that user and context • Order results by combination of demand, supply, and other factors (“Best Match”) y , pp y, ( ) – Feedback loop enables system to learn and improve over time • Collect user behavior • Aggregate and analyze offline • Deploy updated metadata • Decide on and serve appropriate experience – Best Practices • “Perturbation” for continual improvement • Dampening of positive feedback © 2008 eBay Inc.
  • 19. Strategy 4: Remember Everything Fails • Build all systems to be tolerant of failure – Assume every operation will fail and every resource will be unavailable – Detect failure as rapidly as possible – Recover from failure as rapidly as possible – D as much as possible d i f il Do h ibl during failure • Motivation – Availability • Failure Patterns – Failure Detection – Rollback – Graceful Degradation © 2008 eBay Inc.
  • 20. Everything Fails: Central Application Logging Pattern: Failure Detection – Application servers log all requests pp g q • Detailed logging of all application activity, particularly database and other external resources • Log request, application-generated information, and exceptions – Messages broadcast on multicast message bus – Listeners automate failure detection and notification • Real-time application state monitoring: exceptions and operational alerts • Historical reports by application server pool, URL, database, etc. – Over 1.5TB of log messages per day © 2008 eBay Inc.
  • 21. Everything Fails: Code Rollout / Rollback Pattern: Rollback Absolutely no changes to the site which cannot be undone (!) – Entire site rolled every 2 weeks: 16,000 application servers in 220 pools – Many deployed features have dependencies between pools – Rollout plan contains explicit set (transitive closure) of all rollout dependencies – Automated tool executes staged rollout, with built-in checkpoints and immediate rollback if necessary – Automated tool optimizes rollback, including full rollback of dependent pools © 2008 eBay Inc.
  • 22. Everything Fails: Feature Wire-on / Wire-off Pattern: Rollback – Every feature has on / off state driven by central configuration • Allows feature to be immediately turned off for operational or business reasons • Allows features to be deployed “wired off” to unroll dependencies wired-off – Decouples code deployment from feature deployment – Applications check for feature “availability” in the same way as they check for resource availability © 2008 eBay Inc.
  • 23. Everything Fails: Resource Markdown Pattern: Failure Detection – Application detects when database or other backend resource is unavailable or distressed • “Resource slow” is often far more challenging than “resource down” (!) Pattern: Graceful Degradation – Application “marks down” the resource • Stops making calls to it and sends alert – Non-critical functionality is removed or ignored – Critical functionality is retried or deferred • Failover to alternate resource • Defer processing to async event – Explicit “markup” p p • Allows resource to be restored and brought online in a controlled way © 2008 eBay Inc.
  • 24. Recap: Architectural Strategies • Strategy 1: Partition Everything • Strategy 2: Async Everywhere • Strategy 3: Automate Everything • Strategy 4: Remember Everything Fails © 2008 eBay Inc.
  • 25. Questions? • Randy Shoup, eBay Distinguished Architect rshoup@ebay.com © 2008 eBay Inc.